liteeth: Hook up LiteX LiteEth ethernet controller
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sat, 13 Jun 2020 00:04:31 +0000 (10:04 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 23 Jun 2020 23:53:01 +0000 (09:53 +1000)
Currently only generated for Arty.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
15 files changed:
fpga/arty_a7.xdc
fpga/top-arty.vhdl
include/microwatt_soc.h
litedram/gen-src/sdram_init/main.c
litedram/generated/arty/litedram_core.init
litedram/generated/nexys-video/litedram_core.init
litedram/generated/sim/litedram_core.init
liteeth/fusesoc-add-files.py [new file with mode: 0644]
liteeth/gen-src/arty.yml [new file with mode: 0644]
liteeth/gen-src/generate.sh [new file with mode: 0755]
liteeth/generated/arty/liteeth_core.v [new file with mode: 0644]
liteeth/liteeth.core [new file with mode: 0644]
microwatt.core
soc.vhdl
syscon.vhdl

index 34c27c993afabfee972b6415624cfb4271b13e5e..54e067556558bc387235c130577c920a93a43b88 100644 (file)
@@ -4,7 +4,7 @@
 
 set_property -dict { PACKAGE_PIN E3  IOSTANDARD LVCMOS33 } [get_ports { ext_clk }];
 
-set_property -dict { PACKAGE_PIN C2  IOSTANDARD LVCMOS33 } [get_ports { ext_rst }];
+set_property -dict { PACKAGE_PIN C2  IOSTANDARD LVCMOS33 } [get_ports { ext_rst_n }];
 
 set_property -dict { PACKAGE_PIN D10 IOSTANDARD LVCMOS33 } [get_ports { uart_main_tx }];
 set_property -dict { PACKAGE_PIN A9  IOSTANDARD LVCMOS33 } [get_ports { uart_main_rx }];
@@ -26,6 +26,15 @@ set_property -dict { PACKAGE_PIN E1  IOSTANDARD LVCMOS33 } [get_ports { led0_b }
 set_property -dict { PACKAGE_PIN F6  IOSTANDARD LVCMOS33 } [get_ports { led0_g }];
 set_property -dict { PACKAGE_PIN G6  IOSTANDARD LVCMOS33 } [get_ports { led0_r }];
 
+################################################################################
+# Normal LEDs
+################################################################################
+
+set_property -dict { PACKAGE_PIN H5  IOSTANDARD LVCMOS33 } [get_ports { led4 }];
+set_property -dict { PACKAGE_PIN J5  IOSTANDARD LVCMOS33 } [get_ports { led5 }];
+set_property -dict { PACKAGE_PIN T9  IOSTANDARD LVCMOS33 } [get_ports { led6 }];
+set_property -dict { PACKAGE_PIN T10 IOSTANDARD LVCMOS33 } [get_ports { led7 }];
+
 ################################################################################
 # SPI Flash
 ################################################################################
@@ -41,6 +50,85 @@ set_property -dict { PACKAGE_PIN M14 IOSTANDARD LVCMOS33 } [get_ports { spi_flas
 set_property IOB true [get_cells -hierarchical -filter {NAME =~*/spi_rxtx/*sck_1*}]
 set_property IOB true [get_cells -hierarchical -filter {NAME =~*/spi_rxtx/input_delay_1.dat_i_l*}]
 
+################################################################################
+# Ethernet (generated by LiteX)
+################################################################################
+
+# eth_ref_clk:0
+set_property LOC G18 [get_ports {eth_ref_clk}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_ref_clk}]
+
+# eth_clocks:0.tx
+set_property LOC H16 [get_ports {eth_clocks_tx}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_clocks_tx}]
+
+# eth_clocks:0.rx
+set_property LOC F15 [get_ports {eth_clocks_rx}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_clocks_rx}]
+
+# eth:0.rst_n
+set_property LOC C16 [get_ports {eth_rst_n}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_rst_n}]
+
+# eth:0.mdio
+set_property LOC K13 [get_ports {eth_mdio}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_mdio}]
+
+# eth:0.mdc
+set_property LOC F16 [get_ports {eth_mdc}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_mdc}]
+
+# eth:0.rx_dv
+set_property LOC G16 [get_ports {eth_rx_dv}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_rx_dv}]
+
+# eth:0.rx_er
+set_property LOC C17 [get_ports {eth_rx_er}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_rx_er}]
+
+# eth:0.rx_data
+set_property LOC D18 [get_ports {eth_rx_data[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_rx_data[0]}]
+
+# eth:0.rx_data
+set_property LOC E17 [get_ports {eth_rx_data[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_rx_data[1]}]
+
+# eth:0.rx_data
+set_property LOC E18 [get_ports {eth_rx_data[2]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_rx_data[2]}]
+
+# eth:0.rx_data
+set_property LOC G17 [get_ports {eth_rx_data[3]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_rx_data[3]}]
+
+# eth:0.tx_en
+set_property LOC H15 [get_ports {eth_tx_en}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_tx_en}]
+
+# eth:0.tx_data
+set_property LOC H14 [get_ports {eth_tx_data[0]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_tx_data[0]}]
+
+# eth:0.tx_data
+set_property LOC J14 [get_ports {eth_tx_data[1]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_tx_data[1]}]
+
+# eth:0.tx_data
+set_property LOC J13 [get_ports {eth_tx_data[2]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_tx_data[2]}]
+
+# eth:0.tx_data
+set_property LOC H17 [get_ports {eth_tx_data[3]}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_tx_data[3]}]
+
+# eth:0.col
+set_property LOC D17 [get_ports {eth_col}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_col}]
+
+# eth:0.crs
+set_property LOC G14 [get_ports {eth_crs}]
+set_property IOSTANDARD LVCMOS33 [get_ports {eth_crs}]
 
 ################################################################################
 # DRAM (generated by LiteX)
@@ -326,10 +414,22 @@ set_property CONFIG_MODE SPIx4 [current_design]
 
 create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports { ext_clk }];
 
+create_clock -name eth_rx_clk -period 40.0 [get_ports { eth_clocks_rx }]
+
+create_clock -name eth_tx_clk -period 40.0 [get_ports { eth_clocks_tx }]
+
+set_clock_groups -group [get_clocks -include_generated_clocks -of [get_nets system_clk]] -group [get_clocks -include_generated_clocks -of [get_nets eth_clocks_rx]] -asynchronous
+
+set_clock_groups -group [get_clocks -include_generated_clocks -of [get_nets system_clk]] -group [get_clocks -include_generated_clocks -of [get_nets eth_clocks_tx]] -asynchronous
+
+set_clock_groups -group [get_clocks -include_generated_clocks -of [get_nets eth_clocks_rx]] -group [get_clocks -include_generated_clocks -of [get_nets eth_clocks_tx]] -asynchronous
+
 ################################################################################
-# False path constraints (from LiteX as they relate to LiteDRAM)
+# False path constraints (from LiteX as they relate to LiteDRAM and LiteEth)
 ################################################################################
 
+set_false_path -quiet -through [get_nets -hierarchical -filter {mr_ff == TRUE}]
+
 set_false_path -quiet -to [get_pins -filter {REF_PIN_NAME == PRE} -of_objects [get_cells -hierarchical -filter {ars_ff1 == TRUE || ars_ff2 == TRUE}]]
 
 set_max_delay 2 -quiet -from [get_pins -filter {REF_PIN_NAME == C} -of_objects [get_cells -hierarchical -filter {ars_ff1 == TRUE}]] -to [get_pins -filter {REF_PIN_NAME == D} -of_objects [get_cells -hierarchical -filter {ars_ff2 == TRUE}]]
index c8d560a1a3564d14e655da9d64ec9ac7692bef78..d38ed7653504c7bd6d4906e1d789c2ad111b7ccb 100644 (file)
@@ -21,11 +21,12 @@ entity toplevel is
         SPI_FLASH_OFFSET   : integer := 4194304;
         SPI_FLASH_DEF_CKDV : natural := 1;
         SPI_FLASH_DEF_QUAD : boolean := true;
-        LOG_LENGTH         : natural := 512
+        LOG_LENGTH         : natural := 512;
+        USE_LITEETH        : boolean  := false
         );
     port(
         ext_clk   : in  std_ulogic;
-        ext_rst   : in  std_ulogic;
+        ext_rst_n : in  std_ulogic;
 
         -- UART0 signals:
         uart_main_tx : out std_ulogic;
@@ -35,6 +36,10 @@ entity toplevel is
         led0_b  : out std_ulogic;
         led0_g  : out std_ulogic;
         led0_r  : out std_ulogic;
+        led4    : out std_ulogic;
+        led5    : out std_ulogic;
+        led6    : out std_ulogic;
+        led7    : out std_ulogic;
 
         -- SPI
         spi_flash_cs_n   : out std_ulogic;
@@ -44,6 +49,21 @@ entity toplevel is
         spi_flash_wp_n   : inout std_ulogic;
         spi_flash_hold_n : inout std_ulogic;
 
+        -- Ethernet
+        eth_ref_clk      : out std_ulogic;
+        eth_clocks_tx    : in std_ulogic;
+        eth_clocks_rx    : in std_ulogic;
+        eth_rst_n        : out std_ulogic;
+        eth_mdio         : inout std_ulogic;
+        eth_mdc          : out std_ulogic;
+        eth_rx_dv        : in std_ulogic;
+        eth_rx_er        : in std_ulogic;
+        eth_rx_data      : in std_ulogic_vector(3 downto 0);
+        eth_tx_en        : out std_ulogic;
+        eth_tx_data      : out std_ulogic_vector(3 downto 0);
+        eth_col          : in std_ulogic;
+        eth_crs          : in std_ulogic;
+
         -- DRAM wires
         ddram_a       : out std_ulogic_vector(13 downto 0);
         ddram_ba      : out std_ulogic_vector(2 downto 0);
@@ -70,20 +90,27 @@ architecture behaviour of toplevel is
     signal pll_rst : std_ulogic;
 
     -- Internal clock signals:
-    signal system_clk : std_ulogic;
+    signal system_clk        : std_ulogic;
     signal system_clk_locked : std_ulogic;
+    signal eth_clk_locked    : std_ulogic;
 
-    -- DRAM main data wishbone connection
-    signal wb_dram_in       : wishbone_master_out;
-    signal wb_dram_out      : wishbone_slave_out;
-
-    -- DRAM control wishbone connection
+    -- External IOs from the SoC
     signal wb_ext_io_in        : wb_io_master_out;
     signal wb_ext_io_out       : wb_io_slave_out;
     signal wb_ext_is_dram_csr  : std_ulogic;
     signal wb_ext_is_dram_init : std_ulogic;
     signal wb_ext_is_eth       : std_ulogic;
 
+    -- DRAM main data wishbone connection
+    signal wb_dram_in          : wishbone_master_out;
+    signal wb_dram_out         : wishbone_slave_out;
+
+    -- DRAM control wishbone connection
+    signal wb_dram_ctrl_out    : wb_io_slave_out := wb_io_slave_out_init;
+
+    -- LiteEth connection
+    signal ext_irq_eth         : std_ulogic;
+    signal wb_eth_out          : wb_io_slave_out := wb_io_slave_out_init;
 
     -- Control/status
     signal core_alt_reset : std_ulogic;
@@ -142,7 +169,8 @@ begin
             SPI_FLASH_OFFSET   => SPI_FLASH_OFFSET,
             SPI_FLASH_DEF_CKDV => SPI_FLASH_DEF_CKDV,
             SPI_FLASH_DEF_QUAD => SPI_FLASH_DEF_QUAD,
-            LOG_LENGTH         => LOG_LENGTH
+            LOG_LENGTH         => LOG_LENGTH,
+            USE_LITEETH        => USE_LITEETH
             )
         port map (
             -- System signals
@@ -160,6 +188,9 @@ begin
             spi_flash_sdat_oe => spi_sdat_oe,
             spi_flash_sdat_i  => spi_sdat_i,
 
+            -- External interrupts
+            ext_irq_eth       => ext_irq_eth,
+
             -- DRAM wishbone
             wb_dram_in           => wb_dram_in,
             wb_dram_out          => wb_dram_out,
@@ -167,6 +198,7 @@ begin
             wb_ext_io_out        => wb_ext_io_out,
             wb_ext_is_dram_csr   => wb_ext_is_dram_csr,
             wb_ext_is_dram_init  => wb_ext_is_dram_init,
+            wb_ext_is_eth        => wb_ext_is_eth,
             alt_reset            => core_alt_reset
             );
 
@@ -217,8 +249,8 @@ begin
             port map(
                 ext_clk => ext_clk,
                 pll_clk => system_clk,
-                pll_locked_in => system_clk_locked,
-                ext_rst_in => ext_rst,
+                pll_locked_in => system_clk_locked and eth_clk_locked,
+                ext_rst_in => ext_rst_n,
                 pll_rst_out => pll_rst,
                 rst_out => soc_rst
                 );
@@ -257,6 +289,7 @@ begin
         signal dram_init_done  : std_ulogic;
         signal dram_init_error : std_ulogic;
         signal dram_sys_rst    : std_ulogic;
+        signal rst_gen_rst     : std_ulogic;
     begin
 
         -- Eventually dig out the frequency from the generator
@@ -272,12 +305,22 @@ begin
             port map(
                 ext_clk => ext_clk,
                 pll_clk => system_clk,
-                pll_locked_in => '1',
-                ext_rst_in => ext_rst,
+                pll_locked_in => eth_clk_locked,
+                ext_rst_in => ext_rst_n,
                 pll_rst_out => pll_rst,
-                rst_out => open
+                rst_out => rst_gen_rst
                 );
 
+        -- Generate SoC reset
+        soc_rst_gen: process(system_clk)
+        begin
+            if ext_rst_n = '0' then
+                soc_rst <= '1';
+            elsif rising_edge(system_clk) then
+                soc_rst <= dram_sys_rst or not eth_clk_locked or not system_clk_locked;
+            end if;
+        end process;
+
         dram: entity work.litedram_wrapper
             generic map(
                 DRAM_ABITS => 24,
@@ -289,14 +332,14 @@ begin
                 clk_in          => ext_clk,
                 rst             => pll_rst,
                 system_clk      => system_clk,
-                system_reset    => soc_rst,
+                system_reset    => dram_sys_rst,
                 core_alt_reset  => core_alt_reset,
                 pll_locked      => system_clk_locked,
 
                 wb_in           => wb_dram_in,
                 wb_out          => wb_dram_out,
                 wb_ctrl_in      => wb_ext_io_in,
-                wb_ctrl_out     => wb_ext_io_out,
+                wb_ctrl_out     => wb_dram_ctrl_out,
                 wb_ctrl_is_csr  => wb_ext_is_dram_csr,
                 wb_ctrl_is_init => wb_ext_is_dram_init,
 
@@ -326,6 +369,141 @@ begin
 
     end generate;
 
+    has_liteeth : if USE_LITEETH generate
+
+        component liteeth_core port (
+            sys_clock           : in std_ulogic;
+            sys_reset           : in std_ulogic;
+            mii_eth_clocks_tx   : in std_ulogic;
+            mii_eth_clocks_rx   : in std_ulogic;
+            mii_eth_rst_n       : out std_ulogic;
+            mii_eth_mdio        : in std_ulogic;
+            mii_eth_mdc         : out std_ulogic;
+            mii_eth_rx_dv       : in std_ulogic;
+            mii_eth_rx_er       : in std_ulogic;
+            mii_eth_rx_data     : in std_ulogic_vector(3 downto 0);
+            mii_eth_tx_en       : out std_ulogic;
+            mii_eth_tx_data     : out std_ulogic_vector(3 downto 0);
+            mii_eth_col         : in std_ulogic;
+            mii_eth_crs         : in std_ulogic;
+            wishbone_adr        : in std_ulogic_vector(29 downto 0);
+            wishbone_dat_w      : in std_ulogic_vector(31 downto 0);
+            wishbone_dat_r      : out std_ulogic_vector(31 downto 0);
+            wishbone_sel        : in std_ulogic_vector(3 downto 0);
+            wishbone_cyc        : in std_ulogic;
+            wishbone_stb        : in std_ulogic;
+            wishbone_ack        : out std_ulogic;
+            wishbone_we         : in std_ulogic;
+            wishbone_cti        : in std_ulogic_vector(2 downto 0);
+            wishbone_bte        : in std_ulogic_vector(1 downto 0);
+            wishbone_err        : out std_ulogic;
+            interrupt           : out std_ulogic
+            );
+        end component;
+
+        signal wb_eth_cyc     : std_ulogic;
+        signal wb_eth_adr     : std_ulogic_vector(29 downto 0);
+
+        -- Change this to use a PLL instead of a BUFR to generate the 25Mhz
+        -- reference clock to the PHY.
+        constant USE_PLL : boolean := false;
+    begin
+        eth_use_pll: if USE_PLL generate
+            signal eth_clk_25     : std_ulogic;
+            signal eth_clkfb      : std_ulogic;
+        begin
+            pll_eth : PLLE2_BASE
+                generic map (
+                    BANDWIDTH          => "OPTIMIZED",
+                    CLKFBOUT_MULT      => 16,
+                    CLKIN1_PERIOD      => 10.0,
+                    CLKOUT0_DIVIDE     => 64,
+                    DIVCLK_DIVIDE      => 1,
+                    STARTUP_WAIT       => "FALSE")
+                port map (
+                    CLKOUT0  => eth_clk_25,
+                    CLKOUT1  => open,
+                    CLKOUT2  => open,
+                    CLKOUT3  => open,
+                    CLKOUT4  => open,
+                    CLKOUT5  => open,
+                    CLKFBOUT => eth_clkfb,
+                    LOCKED   => eth_clk_locked,
+                    CLKIN1   => ext_clk,
+                    PWRDWN   => '0',
+                    RST      => pll_rst,
+                    CLKFBIN  => eth_clkfb);
+
+            eth_clk_buf: BUFG
+                port map (
+                    I => eth_clk_25,
+                    O => eth_ref_clk
+                    );
+        end generate;
+
+        eth_use_bufr: if not USE_PLL generate
+            eth_clk_div: BUFR
+                generic map (
+                    BUFR_DIVIDE => "4"
+                    )
+                port map (
+                    I => system_clk,
+                    O => eth_ref_clk,
+                    CE => '1',
+                    CLR => '0'
+                    );
+            eth_clk_locked <= '1';
+        end generate;
+
+        liteeth :  liteeth_core
+            port map(
+                sys_clock         => system_clk,
+                sys_reset         => soc_rst,
+                mii_eth_clocks_tx => eth_clocks_tx,
+                mii_eth_clocks_rx => eth_clocks_rx,
+                mii_eth_rst_n     => eth_rst_n,
+                mii_eth_mdio      => eth_mdio,
+                mii_eth_mdc       => eth_mdc,
+                mii_eth_rx_dv     => eth_rx_dv,
+                mii_eth_rx_er     => eth_rx_er,
+                mii_eth_rx_data   => eth_rx_data,
+                mii_eth_tx_en     => eth_tx_en,
+                mii_eth_tx_data   => eth_tx_data,
+                mii_eth_col       => eth_col,
+                mii_eth_crs       => eth_crs,
+                wishbone_adr      => wb_eth_adr,
+                wishbone_dat_w    => wb_ext_io_in.dat,
+                wishbone_dat_r    => wb_eth_out.dat,
+                wishbone_sel      => wb_ext_io_in.sel,
+                wishbone_cyc      => wb_eth_cyc,
+                wishbone_stb      => wb_ext_io_in.stb,
+                wishbone_ack      => wb_eth_out.ack,
+                wishbone_we       => wb_ext_io_in.we,
+                wishbone_cti      => "000",
+                wishbone_bte      => "00",
+                wishbone_err      => open,
+                interrupt         => ext_irq_eth
+                );
+
+        -- Gate cyc with "chip select" from soc
+        wb_eth_cyc <= wb_ext_io_in.cyc and wb_ext_is_eth;
+
+        -- Remove top address bits as liteeth decoder doesn't know about them
+        wb_eth_adr <= x"000" & "000" & wb_ext_io_in.adr(16 downto 2);
+
+        -- LiteETH isn't pipelined
+        wb_eth_out.stall <= not wb_eth_out.ack;
+
+    end generate;
+
+    no_liteeth : if not USE_LITEETH generate
+        eth_clk_locked <= '1';
+        ext_irq_eth    <= '0';
+    end generate;
+
+    -- Mux WB response on the IO bus
+    wb_ext_io_out <= wb_eth_out when wb_ext_is_eth = '1' else wb_dram_ctrl_out;
+
     leds_pwm : process(system_clk)
     begin
         if rising_edge(system_clk) then
@@ -342,4 +520,9 @@ begin
         end if;
     end process;
 
+    led4 <= system_clk_locked;
+    led5 <= eth_clk_locked;
+    led6 <= not soc_rst;
+    led7 <= not spi_flash_cs_n;
+
 end architecture behaviour;
index fd83840e54eeb1843a92b333eb6807bdb5ad7ed0..2d09f747eac5f9a1cba101554d06d9fa2b311026 100644 (file)
@@ -15,6 +15,8 @@
 #define XICS_ICS_BASE   0xc0005000  /* Interrupt controller */
 #define SPI_FCTRL_BASE  0xc0006000  /* SPI flash controller registers */
 #define DRAM_CTRL_BASE 0xc8000000  /* LiteDRAM control registers */
+#define LETH_CSR_BASE  0xc8020000  /* LiteEth CSR registers */
+#define LETH_SRAM_BASE 0xc8030000  /* LiteEth MMIO space */
 #define SPI_FLASH_BASE  0xf0000000  /* SPI Flash memory map */
 #define DRAM_INIT_BASE  0xff000000  /* Internal DRAM init firmware */
 
@@ -22,6 +24,7 @@
  * Interrupt numbers
  */
 #define IRQ_UART0       0
+#define IRQ_ETHERNET    1
 
 /*
  * Register definitions for the syscon registers
@@ -33,6 +36,7 @@
 #define   SYS_REG_INFO_HAS_DRAM                (1ull << 1)
 #define   SYS_REG_INFO_HAS_BRAM                (1ull << 2)
 #define   SYS_REG_INFO_HAS_SPI_FLASH           (1ull << 3)
+#define   SYS_REG_INFO_HAS_LITEETH             (1ull << 4)
 #define SYS_REG_BRAMINFO               0x10
 #define   SYS_REG_BRAMINFO_SIZE_MASK           0xfffffffffffffull
 #define SYS_REG_DRAMINFO               0x18
index 386332cbf919d3920dbce1f6f0b600f2905bde6d..dd3b507b3cfb60e0768648bcc05be913eb75c912 100644 (file)
@@ -260,6 +260,8 @@ uint64_t main(void)
                printf("BRAM ");
        if (ftr & SYS_REG_INFO_HAS_SPI_FLASH)
                printf("SPIFLASH ");
+       if (ftr & SYS_REG_INFO_HAS_LITEETH)
+               printf("ETHERNET ");
        printf("\n");
        if (ftr & SYS_REG_INFO_HAS_BRAM) {
                val = readq(SYSCON_BASE + SYS_REG_BRAMINFO) & SYS_REG_BRAMINFO_SIZE_MASK;
index 84033c5f034fc0eb2610a6312e476fef8cafcc4d..b75722c7c045b0221a4c2b013fb606f42749f87d 100644 (file)
@@ -527,11 +527,11 @@ f88100d83be10020
 f8e100f038c100d8
 f90100f87fe3fb78
 f9410108f9210100
-6000000048001af9
+6000000048001b0d
 7fe3fb787c7e1b78
-6000000048001611
+6000000048001625
 7fc3f378382100b0
-00000000480020b8
+00000000480020cc
 0000028001000000
 000000004e800020
 0000000000000000
@@ -540,555 +540,288 @@ f9410108f9210100
 0000000000000000
 3842a5203c4c0001
 7d8000267c0802a6
-9181000848001ff5
-48001505f821fed1
+9181000848002009
+48001519f821fed1
 3c62ffff60000000
-4bffff3938637b78
+4bffff3938637b88
 548400023880ffff
 7c8026ea7c0004ac
 3fe0c0003c62ffff
-63ff000838637b98
+63ff000838637ba8
 3c62ffff4bffff15
-38637bb87bff0020
+38637bc87bff0020
 7c0004ac4bffff05
 73e900017fe0feea
 3c62ffff41820010
-4bfffee938637bd0
+4bfffee938637be0
 4e00000073e90002
 3c62ffff41820010
-4bfffed138637bd8
+4bfffed138637be8
 4d80000073e90004
 3c62ffff41820010
-4bfffeb938637be0
+4bfffeb938637bf0
 4d00000073e90008
 3c62ffff41820010
-4bfffea138637be8
-3b7b7f683f62ffff
-4bfffe917f63db78
-3c80c000418e0028
-7884002060840010
-7c8026ea7c0004ac
-7884b5823c62ffff
-4bfffe6938637bf8
-3c80c0004192004c
-7884002060840018
-7c8026ea7c0004ac
-788460223c62ffff
-4bfffe4138637c10
-608400303c80c000
+4bfffea138637bf8
+4182001073e90010
+38637c083c62ffff
+3f62ffff4bfffe8d
+7f63db783b7b7f88
+418e00284bfffe7d
+608400103c80c000
 7c0004ac78840020
 3c62ffff7c8026ea
-38637c287884b282
-3d20c0004bfffe1d
-7929002061290020
-7d204eea7c0004ac
-792906003c80000f
-3c62ffff60844240
-38637c407c892392
-418a02584bfffded
-63bd00383fa0c000
-7c0004ac7bbd0020
-3d40c0007fa0eeea
-614a600439200002
-7c0004ac794a0020
-3fe0c0007d2057aa
-63ff60003920ff9f
-7c0004ac7bff0020
-7c0004ac7d20ffaa
-579c063e7f80feaa
-7fc0feaa7c0004ac
-7c0004ac57de063e
-4bfffd3d7fe0feaa
-3c62ffff57ff063e
-7fc5f3787fe6fb78
-38637c607f84e378
-7f89f3784bfffd65
-2f8900007d29fb78
-7f89f038419e0164
-2f8900ff7d29f838
-2b9c0001419e0154
-2b9e0002409e0374
-2b9e0020419e000c
-3bffffe8409e0134
-2b9f000157ff063e
-3fe0c000419d0124
-63ff600039200035
-7c0004ac7bff0020
-3fc0c0007d20ffaa
-63de60043b400002
-7c0004ac7bde0020
-7c0004ac7f40f7aa
-7c0004ac7d20ffaa
-4bfffc957f80feaa
-3c62ffff579c063e
-38637c807f84e378
-738900024bfffcc5
-3c62ffff40820090
-4bfffcb138637ca0
-7f40f7aa7c0004ac
-7c0004ac39200006
-4bfffc557d20ffaa
+38637c187884b582
+4192004c4bfffe55
+608400183c80c000
+7c0004ac78840020
+3c62ffff7c8026ea
+38637c3078846022
+3c80c0004bfffe2d
+7884002060840030
+7c8026ea7c0004ac
+7884b2823c62ffff
+4bfffe0938637c48
+612900203d20c000
+7c0004ac79290020
+3c80000f7d204eea
+6084424079290600
+7c8923923c62ffff
+4bfffdd938637c60
+3fa0c000418a0258
+7bbd002063bd0038
+7fa0eeea7c0004ac
+392000023d40c000
+794a0020614a6004
+7d2057aa7c0004ac
+3920ff9f3fe0c000
+7bff002063ff6000
+7d20ffaa7c0004ac
+7f80feaa7c0004ac
+7c0004ac579c063e
+57de063e7fc0feaa
+7fe0feaa7c0004ac
+57ff063e4bfffd29
+7fe6fb783c62ffff
+7f84e3787fc5f378
+4bfffd5138637c80
+7d29fb787f89f378
+419e01642f890000
+7d29f8387f89f038
+419e01542f8900ff
+409e03742b9c0001
+419e000c2b9e0002
+409e01342b9e0020
+57ff063e3bffffe8
+419d01242b9f0001
+392000353fe0c000
+7bff002063ff6000
+7d20ffaa7c0004ac
+3b4000023fc0c000
+7bde002063de6004
 7f40f7aa7c0004ac
-7c0004ac39200001
-392000007d20ffaa
 7d20ffaa7c0004ac
-7c0004ac639c0002
-7c0004ac7f80ffaa
-4bfffc1d7d20f7aa
-3b4000053b200002
-7f20f7aa7c0004ac
-7f40ffaa7c0004ac
 7f80feaa7c0004ac
-4bfffbf5579c063e
-4082ffdc73890001
-38637cb83c62ffff
-3d40c0004bfffc25
-794a0020614a6008
-7d20562a7c0004ac
-652920005529021e
-7c0004ac61291f6b
-7f63db787d20572a
-7bbd00204bfffbf5
-7fa4eb783c62ffff
-4bfffbe138637cc8
-7f63db783be00001
-419200284bfffbd5
-3c82ffff3ca2ffff
-38a57ce83c62ffff
-38637d0038847cf8
-48000fbd4bfffbb5
-418e002460000000
-38637d303c62ffff
-386000004bfffb9d
-3be0000048000144
-4bffffb03ba00000
-419e00842fbf0000
-38637d483c62ffff
-3c9df0004bfffb75
-7884002038a00040
-4800137d38610070
-e921007060000000
-614a464c3d400002
-79290600794a83e4
-7fa95000614a457f
-3c62ffff419e0080
-4bfffb3138637d60
-8941007688610077
-8901007489210075
-88c1007288e10073
-8881007088a10071
-3c62fffff8610060
-4bfffb0138637de0
-38637e103c62ffff
-3c80ff004bfffaf5
-6084400038a0ffff
-7884002054a50422
-480012f53c604000
-3c62ffff60000000
-4bfffac938637e30
-4bffff284bfffb49
-2f89000189210075
-a1210082409e0010
-419e00102f890015
-38637d803c62ffff
-ebe100904bffff6c
-3bc000003f02ffff
-3b187d983b2100b0
-7bff00207fffea14
-7f89f040a12100a8
-80810088419d0034
-38637dc03c62ffff
-4bfffae54bfffa65
-2fa3ffffe8610088
-38210130419eff58
-7d83812081810008
-3c9ff00048001b34
-7884002038a00038
-4800124d7f23cb78
-812100b060000000
-409e004c2f890001
-eb6100c0eb4100d0
-7fc4f378eb8100b8
-7f66db787f03c378
-3f9cf0007b450020
-7c9de2144bfff9fd
-788400207b450020
-480012057f63db78
-a12100a660000000
-7bff00207fe9fa14
-7bde00203bde0001
-2b9c00204bffff50
-2b9e00ba409efdcc
-2b9f0018409efdc4
-3c62ffff409efdbc
-4bfff9a938637cb0
-000000004bfffd78
-0000088003000000
-612908043d20c800
-7c0004ac79290020
-3d40c8007c604f2a
-614a080839200001
+579c063e4bfffc81
+7f84e3783c62ffff
+4bfffcb138637ca0
+4082009073890002
+38637cc03c62ffff
+7c0004ac4bfffc9d
+392000067f40f7aa
+7d20ffaa7c0004ac
+7c0004ac4bfffc41
+392000017f40f7aa
+7d20ffaa7c0004ac
+7c0004ac39200000
+639c00027d20ffaa
+7f80ffaa7c0004ac
+7d20f7aa7c0004ac
+3b2000024bfffc09
+7c0004ac3b400005
+7c0004ac7f20f7aa
+7c0004ac7f40ffaa
+579c063e7f80feaa
+738900014bfffbe1
+3c62ffff4082ffdc
+4bfffc1138637cd8
+614a60083d40c000
 7c0004ac794a0020
-4e8000207d20572a
-0000000000000000
-3863ffff00000000
-3923000178630020
-600000007d2903a6
-4e8000204200fffc
-0000000000000000
-3d20c80000000000
-6129001439400001
-792900207d431830
+5529021e7d20562a
+61291f6b65292000
+7d20572a7c0004ac
+4bfffbe17f63db78
+3c62ffff7bbd0020
+38637ce87fa4eb78
+3be000014bfffbcd
+4bfffbc17f63db78
+3ca2ffff41920028
+3c62ffff3c82ffff
+38847d1838a57d08
+4bfffba138637d20
+6000000048000fbd
+3c62ffff418e0024
+4bfffb8938637d50
+4800014438600000
+3ba000003be00000
+2fbf00004bffffb0
+3c62ffff419e0084
+4bfffb6138637d68
+38a000403c9df000
+3861007078840020
+600000004800137d
+3d400002e9210070
+794a83e4614a464c
+614a457f79290600
+419e00807fa95000
+38637d803c62ffff
+886100774bfffb1d
+8921007589410076
+88e1007389010074
+88a1007188c10072
+f861006088810070
+38637e003c62ffff
+3c62ffff4bfffaed
+4bfffae138637e30
+38a0ffff3c80ff00
+54a5042260844000
+3c60400078840020
+60000000480012f5
+38637e503c62ffff
+4bfffb354bfffab5
+892100754bffff28
+409e00102f890001
+2f890015a1210082
+3c62ffff419e0010
+4bffff6c38637da0
+3f02ffffebe10090
+3b2100b03bc00000
+7fffea143b187db8
+a12100a87bff0020
+419d00347f89f040
+3c62ffff80810088
+4bfffa5138637de0
+e86100884bfffad1
+419eff582fa3ffff
+8181000838210130
+48001b347d838120
+38a000383c9ff000
+7f23cb7878840020
+600000004800124d
+2f890001812100b0
+eb4100d0409e004c
+eb8100b8eb6100c0
+7f03c3787fc4f378
+7b4500207f66db78
+4bfff9e93f9cf000
+7b4500207c9de214
+7f63db7878840020
+6000000048001205
+7fe9fa14a12100a6
+3bde00017bff0020
+4bffff507bde0020
+409efdcc2b9c0020
+409efdc42b9e00ba
+409efdbc2b9f0018
+38637cd03c62ffff
+4bfffd784bfff995
+0300000000000000
+3d20c80000000880
+7929002061290804
 7c604f2a7c0004ac
-610800183d00c800
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
+392000013d40c800
+794a0020614a0808
+7d20572a7c0004ac
+000000004e800020
+0000000000000000
+786300203863ffff
+7d2903a639230001
+4200fffc60000000
 000000004e800020
 0000000000000000
 394000013d20c800
 7d43183061290014
 7c0004ac79290020
 3d00c8007c604f2a
-790800206108001c
+7908002061080018
 7d40472a7c0004ac
 7c0004ac39400000
 4e8000207d404f2a
 0000000000000000
-3d40c80000000000
-614a083439200025
-7c0004ac794a0020
-3d40c8007d20572a
-614a083839200001
-7c0004ac794a0020
-4e8000207d20572a
-0000000000000000
-8944000100000000
-794a45e489240000
-892400027d4a4b78
-7d2a5378792983e4
-7929c1e489240003
-552ac03e7d295378
-512a463e512a421e
-7d401f2a7c0004ac
-000000004e800020
-0000000000000000
-7c601e2a7c0004ac
-7869c20278630020
-9924000298640003
-7863460278698402
-9864000099240001
+3d20c80000000000
+6129001439400001
+792900207d431830
+7c604f2a7c0004ac
+6108001c3d00c800
+7c0004ac79080020
+394000007d40472a
+7d404f2a7c0004ac
 000000004e800020
 0000000000000000
-38429d903c4c0001
-4800185d7c0802a6
-7c7e1b78f821ff21
-38637f003c62ffff
-600000004bfff7b5
-390100603ca08020
-3940000460a50003
-7d1d43783920002a
-38e0000478a50020
-7ce903a638c00000
-792907e07927f842
-7d2928387d2900d0
-78e900207d273a78
-38c600017ce831ae
-394affff4200ffe0
-794a002139080004
-3d20c8004082ffc4
-6129080c3be00000
-7c0004ac79290020
-3d20c8007fe04f2a
-7929002061290810
-7fe04f2a7c0004ac
-4bfffd8d38600009
-4bfffdc13860000f
-7fa4eb783c60c800
-7863002060630814
-3c60c8004bfffead
-6063082c38810064
-4bfffe9978630020
-388100683c60c800
-7863002060630844
-3c60c8004bfffe85
-6063085c3881006c
-4bfffe7178630020
-612908543d20c800
-7c0004ac79290020
-3d20c8007fe04f2a
-7929002061290858
-7fe04f2a7c0004ac
-392000173d40c800
-794a0020614a084c
+392000253d40c800
+794a0020614a0834
 7d20572a7c0004ac
 392000013d40c800
-794a0020614a0850
+794a0020614a0838
 7d20572a7c0004ac
-6129083c3d20c800
-7c0004ac79290020
-3d20c8007fe04f2a
-7929002061290840
-7fe04f2a7c0004ac
-22de00017fc3f378
-213e00034bfffd0d
-793500203ee2ffff
-7d2907b47ed607b4
-3b0100703be00000
-7f3db2143af77f28
-7f5d4a147ebdaa14
-3860000f4bfffd75
-4bfffca93b800000
-7b890fa43b600001
-7c77482a7f04c378
-7d39e0ae4bfffde1
-7f89500089590010
-7d35e0ae409e0048
-7f895000895a0010
-3b9c0004409e0038
-409effc82bbc0010
-393f00012fbb0000
-409e00287d3c07b4
-419e001c2f890020
-7f9fe3787fc3f378
-4bffff8c4bfffcb9
-4bffffc83b600000
-38bf00017f9fe378
-7cbc07b47fc3f378
-213e00034bfffc99
-793500207eddb214
-7ebdaa147d2907b4
-4bfffcc97fbd4a14
-3b6000003860000f
-3b4000014bfffbfd
-7f04c3787b690fa4
-4bfffd357c77482a
-895600107d39d8ae
-409e00447f895000
-895d00107d35d8ae
-409e00347f895000
-2bbb00103b7b0004
-2fba0000409effc8
-393c0001419e0028
-7d3c07b42f89001f
-7fc3f378419d0018
-4bffff904bfffc11
-4bffffcc3b400000
-7fbfe2142f9f0020
-409e006c7fbd0e70
-38637f103c62ffff
-600000004bfff4cd
-3be000007fc3f378
-7f9fe8004bfffb8d
-3d40c800419c0070
-614a080c39200000
-7c0004ac794a0020
-3d40c8007d20572a
-794a0020614a0810
-7d20572a7c0004ac
-4bfffaed3860000b
-4bfffb213860000f
-48001554382100e0
-3c62ffff7cbfe050
-7ca501947ca50e70
-38637f187fa4eb78
-4bfff4517ca507b4
-4bffff8460000000
-3bff00017fc3f378
-7fff07b44bfffb59
-000000004bffff7c
-00000b8001000000
-384299e03c4c0001
-3d40c8007c0802a6
-3920000e614a0800
-f8010010794a0020
-7c0004acf821ffa1
-3c62ffff7d20572a
-4bfff3f138637fd0
-3821006060000000
-7c0803a6e8010010
-000000004e800020
-0000008001000000
-384299883c4c0001
-3d40c8007c0802a6
-39200001614a0800
-f8010010794a0020
-7c0004acf821ffa1
-3c62ffff7d20572a
-4bfff39938637f48
-3821006060000000
-7c0803a6e8010010
 000000004e800020
-0000008001000000
-384299303c4c0001
-390000807c0802a6
-3d40aaaa7d0903a6
-614aaaaa3d204000
-f821ff8148001409
-3929000491490000
-4bfff3b54200fff8
-3940008060000000
-7d4903a63d00aaaa
-3be000003d204000
-814900006108aaaa
-419e000c7f8a4000
-7fff07b43bff0001
-4200ffe839290004
-3d40555539000080
-3d2040007d0903a6
-91490000614a5555
-4200fff839290004
-600000004bfff359
-3d00555539400080
-3d2040007d4903a6
-8149000061085555
-419e000c7f8a4000
-7fff07b43bff0001
-4200ffe839290004
-419e001c2fbf0000
-38a001003c62ffff
-38637e487fe4fb78
-600000004bfff295
-3ce080203d000008
-60e700037d0903a6
-392000013d404000
-7928f84278e70020
-7d2900d0792907e0
-7d293838394a0004
-912afffc7d294278
-4bfff2c54200ffe4
-3d00000860000000
-7d0903a63ce08020
-3d40400060e70003
-392000013ba00000
-7928f84278e70020
+0000000000000000
+8924000089440001
+7d4a4b78794a45e4
+792983e489240002
+892400037d2a5378
+7d2953787929c1e4
+512a421e552ac03e
+7c0004ac512a463e
+4e8000207d401f2a
+0000000000000000
+7c0004ac00000000
+786300207c601e2a
+986400037869c202
+7869840299240002
+9924000178634602
+4e80002098640000
+0000000000000000
+3c4c000100000000
+7c0802a638429d7c
+f821ff214800185d
+3c62ffff7c7e1b78
+4bfff7a138637f20
+3ca0802060000000
+60a5000339010060
+3920002a39400004
+78a500207d1d4378
+38c0000038e00004
+7927f8427ce903a6
 7d2900d0792907e0
-7d2942787d293838
-7f884840810a0000
-3bbd0001419e000c
-394a00047fbd07b4
-2fbd00004200ffd4
-3c62ffff419e001c
-7fa4eb783ca00008
-4bfff1e138637e70
-3920200060000000
-7d2903a639400000
-794800203d2a1000
-394a000139290002
-9109000079291764
-4bfff2254200ffe8
-3920200060000000
-7d2903a639400000
-3d2a10003bc00000
-8129000879291764
-7f8950005529043e
-3bde0001419e000c
-394a00017fde07b4
-2fbe00004200ffdc
-3c62ffff419e001c
-7fc4f37838a02000
-4bfff15938637e98
-7fffea1460000000
-7ffff21438600000
-409e00a42f9f0000
-38637ec03c62ffff
-600000004bfff135
-3d4000047c9602a6
-7d4903a678840020
-3d49080039200000
-f92a0000794a1f24
-4200fff039290001
-7c9f20507ff602a6
-7fff23963fe06400
-600000004bfff169
-7d3602a67bff0020
-792900203d000004
-3d4040007d0903a6
-394a0008e90a0000
-7cb602a64200fff8
-3ca064007d254850
-3c62ffff7ca54b96
-38637ed07fe4fb78
-4bfff0a978a50060
-3860000160000000
-4800119c38210080
-0100000000000000
-3c4c000100000380
-7c0802a638429644
-f821fec1480010f5
-3bc000013fe0c800
-7bff002063ff0014
-386000004bfffc49
-7c0004ac4bfff72d
-3f80c8007fc0ff2a
-7b9c0020639c0020
-7fc0e72a7c0004ac
-7c0004ac3ba00000
-386000017fa0ff2a
-392000024bfff6fd
-7d20ff2a7c0004ac
-7fc0e72a7c0004ac
-7fa0ff2a7c0004ac
-3b8100703c62ffff
-3e02ffff38637f88
-600000004bffeffd
-fb8100803d22ffff
-39297f983de2ffff
-3e42ffff3dc2ffff
-f92100983ae10063
-3be000003ac10061
-39ef7fa83a107f28
-3a527f6839ce7fb0
-3b20000139210064
-3ea0c8003e80c800
-39210068f9210088
-6294080c7f39f830
-7b33002062b50810
-f92100903bc00000
-3ba000003b000000
-7ab500207a940020
-7fbeeb7848000054
-419e029c2f9d000f
-612900143d20c800
-7c0004ac79290020
-3d00c8007e604f2a
-6108002439400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-7f78db783bbd0001
-394100607fbd07b4
-3920002a39000004
-38e000047d5a5378
-7ce903a638c00000
-7927f8423ca08020
-792907e060a50003
-78a500207d2900d0
 7d273a787d292838
-7cea31ae78e90020
-4200ffd438c60001
-394a00043908ffff
-4082ffb879080021
-7c0004ac3b600000
-7c0004ac7f60a72a
-386000097f60af2a
-3860000f4bfff521
-3c60c8004bfff555
-606308147f44d378
-4bfff64178630020
-3c60c800e8810088
+7ce831ae78e90020
+4200ffe038c60001
+39080004394affff
+4082ffc4794a0021
+3be000003d20c800
+792900206129080c
+7fe04f2a7c0004ac
+612908103d20c800
+7c0004ac79290020
+386000097fe04f2a
+3860000f4bfffd8d
+3c60c8004bfffdc1
+606308147fa4eb78
+4bfffead78630020
+388100643c60c800
 786300206063082c
-e88100904bfff62d
-606308443c60c800
-4bfff61978630020
+3c60c8004bfffe99
+6063084438810068
+4bfffe8578630020
 3881006c3c60c800
 786300206063085c
-3d20c8004bfff605
+3d20c8004bfffe71
 7929002061290854
-7f604f2a7c0004ac
+7fe04f2a7c0004ac
 612908583d20c800
 7c0004ac79290020
-3d40c8007f604f2a
+3d40c8007fe04f2a
 614a084c39200017
 7c0004ac794a0020
 3d40c8007d20572a
@@ -1096,491 +829,760 @@ e88100904bfff62d
 7c0004ac794a0020
 3d20c8007d20572a
 792900206129083c
-7f604f2a7c0004ac
+7fe04f2a7c0004ac
 612908403d20c800
 7c0004ac79290020
-e86100987f604f2a
-7fe4fb787fa5eb78
-3b6000003b400020
-600000004bffedc5
-4bfff4897fe3fb78
-3860000f4bfff51d
-4bfff4513a200001
-79480fa439400000
-f94100a0e8810080
-4bfff5857c70402a
-88fc0001e94100a0
-7f8838007d1650ae
-7d1750ae409e00a0
-7f88380088fc0003
-394a0004409e0090
-409effc02baa0010
-7de37b787e248b78
-600000004bffed55
-7fe3fb783b5affff
-7b5a00214bfff461
-7f7b07b47f7b8a14
-7dc373784082ff80
-600000004bffed2d
-7c0004ac39200000
-7c0004ac7d20a72a
-3860000b7d20af2a
-3860000f4bfff379
-7fe3fb784bfff3ad
-7e4393784bfff531
-600000004bffecf5
-419cfd707f98d800
-4bfffd6c7f1bc378
-4bffff703a200000
-7fc5f3783c62ffff
-38637fb87fe4fb78
-600000004bffecc5
-612900143d20c800
-7c0004ac79290020
-3d00c8007f204f2a
-6108002039400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-3d00c8007bde0020
-6108002438de0001
-394000017cc903a6
-38e0000079080020
-7fe3fb7842000034
-4bfff48d3af7ffff
-3b9cffff7e439378
-600000004bffec4d
-3ad6ffff2f9f0001
-3be00001419e0028
-7c0004ac4bfffc78
-7c0004ac7e604f2a
-7c0004ac7d40472a
-4bffffb47ce04f2a
-3860000138210140
-0000000048000cd4
-0000128001000000
-384291b83c4c0001
-3c62ffff7c0802a6
-48000c9138637f70
-3f60c800f821ff71
-637b10003be00000
-4bffebd17b7b0020
-7c0004ac60000000
-3f40c8007fe0df2a
-7b5a0020635a1004
-7fe0d72a7c0004ac
-4bfff78d3fa0c800
-7bbd002063bd080c
-7fe0ef2a7c0004ac
-63de08103fc0c800
-7c0004ac7bde0020
-3f80c8007fe0f72a
-639c08003920000c
+7fc3f3787fe04f2a
+4bfffd0d22de0001
+3ee2ffff213e0003
+7ed607b479350020
+3be000007d2907b4
+3af77f483b010070
+7ebdaa147f3db214
+4bfffd757f5d4a14
+3b8000003860000f
+3b6000014bfffca9
+7f04c3787b890fa4
+4bfffde17c77482a
+895900107d39e0ae
+409e00487f895000
+895a00107d35e0ae
+409e00387f895000
+2bbc00103b9c0004
+2fbb0000409effc8
+7d3c07b4393f0001
+2f890020409e0028
+7fc3f378419e001c
+4bfffcb97f9fe378
+3b6000004bffff8c
+7f9fe3784bffffc8
+7fc3f37838bf0001
+4bfffc997cbc07b4
+7eddb214213e0003
+7d2907b479350020
+7fbd4a147ebdaa14
+3860000f4bfffcc9
+4bfffbfd3b600000
+7b690fa43b400001
+7c77482a7f04c378
+7d39d8ae4bfffd35
+7f89500089560010
+7d35d8ae409e0044
+7f895000895d0010
+3b7b0004409e0034
+409effc82bbb0010
+419e00282fba0000
+2f89001f393c0001
+419d00187d3c07b4
+4bfffc117fc3f378
+3b4000004bffff90
+2f9f00204bffffcc
+7fbd0e707fbfe214
+3c62ffff409e006c
+4bfff4b938637f30
+7fc3f37860000000
+4bfffb8d3be00000
+419c00707f9fe800
+392000003d40c800
+794a0020614a080c
+7d20572a7c0004ac
+614a08103d40c800
+7c0004ac794a0020
+3860000b7d20572a
+3860000f4bfffaed
+382100e04bfffb21
+7cbfe05048001554
+7ca50e703c62ffff
+7fa4eb787ca50194
+7ca507b438637f38
+600000004bfff43d
+7fc3f3784bffff84
+4bfffb593bff0001
+4bffff7c7fff07b4
+0100000000000000
+3c4c000100000b80
+7c0802a6384299cc
+614a08003d40c800
+794a00203920000e
+f821ffa1f8010010
+7d20572a7c0004ac
+38637ff03c62ffff
+600000004bfff3dd
+e801001038210060
+4e8000207c0803a6
+0100000000000000
+3c4c000100000080
+7c0802a638429974
+614a08003d40c800
+794a002039200001
+f821ffa1f8010010
+7d20572a7c0004ac
+38637f683c62ffff
+600000004bfff385
+e801001038210060
+4e8000207c0803a6
+0100000000000000
+3c4c000100000080
+7c0802a63842991c
+7d0903a639000080
+3d2040003d40aaaa
+48001409614aaaaa
+91490000f821ff81
+4200fff839290004
+600000004bfff3a1
+3d00aaaa39400080
+3d2040007d4903a6
+6108aaaa3be00000
+7f8a400081490000
+3bff0001419e000c
+392900047fff07b4
+390000804200ffe8
+7d0903a63d405555
+614a55553d204000
+3929000491490000
+4bfff3454200fff8
+3940008060000000
+7d4903a63d005555
+610855553d204000
+7f8a400081490000
+3bff0001419e000c
+392900047fff07b4
+2fbf00004200ffe8
+3c62ffff419e001c
+7fe4fb7838a00100
+4bfff28138637e68
+3d00000860000000
+7d0903a63ce08020
+3d40400060e70003
+78e7002039200001
+792907e07928f842
+394a00047d2900d0
+7d2942787d293838
+4200ffe4912afffc
+600000004bfff2b1
+3ce080203d000008
+60e700037d0903a6
+3ba000003d404000
+78e7002039200001
+792907e07928f842
+7d2938387d2900d0
+810a00007d294278
+419e000c7f884840
+7fbd07b43bbd0001
+4200ffd4394a0004
+419e001c2fbd0000
+3ca000083c62ffff
+38637e907fa4eb78
+600000004bfff1cd
+3940000039202000
+3d2a10007d2903a6
+3929000279480020
+79291764394a0001
+4200ffe891090000
+600000004bfff211
+3940000039202000
+3bc000007d2903a6
+792917643d2a1000
+5529043e81290008
+419e000c7f895000
+7fde07b43bde0001
+4200ffdc394a0001
+419e001c2fbe0000
+38a020003c62ffff
+38637eb87fc4f378
+600000004bfff145
+386000007fffea14
+2f9f00007ffff214
+3c62ffff409e00a4
+4bfff12138637ee0
+7c9602a660000000
+788400203d400004
+392000007d4903a6
+794a1f243d490800
+39290001f92a0000
+7ff602a64200fff0
+3fe064007c9f2050
+4bfff1557fff2396
+7bff002060000000
+3d0000047d3602a6
+7d0903a679290020
+e90a00003d404000
+4200fff8394a0008
+7d2548507cb602a6
+7ca54b963ca06400
+7fe4fb783c62ffff
+78a5006038637ef0
+600000004bfff095
+3821008038600001
+000000004800119c
+0000038001000000
+384296303c4c0001
+480010f57c0802a6
+3fe0c800f821fec1
+63ff00143bc00001
+4bfffc497bff0020
+4bfff72d38600000
+7fc0ff2a7c0004ac
+639c00203f80c800
 7c0004ac7b9c0020
-386000007d20e72a
-4bfff2096063c350
-7fe0ef2a7c0004ac
-7fe0f72a7c0004ac
-7c0004ac3920000e
-386027107d20e72a
-392002004bfff1e5
-7d20ef2a7c0004ac
+3ba000007fc0e72a
+7fa0ff2a7c0004ac
+4bfff6fd38600001
 7c0004ac39200002
-3860000f7d20f72a
-7c0004ac4bfff189
-392000037fe0ef2a
+7c0004ac7d20ff2a
+7c0004ac7fc0e72a
+3c62ffff7fa0ff2a
+38637fa83b810070
+4bffefe93e02ffff
+3d22ffff60000000
+3de2fffffb810080
+3dc2ffff39297fb8
+3ae100633e42ffff
+3ac10061f9210098
+3a107f483be00000
+39ce7fd039ef7fc8
+392100643a527f88
+3e80c8003b200001
+f92100883ea0c800
+7f39f83039210068
+62b508106294080c
+3bc000007b330020
+3b000000f9210090
+7a9400203ba00000
+480000547ab50020
+2f9d000f7fbeeb78
+3d20c800419e029c
+7929002061290014
+7e604f2a7c0004ac
+394000013d00c800
+7908002061080024
+7d40472a7c0004ac
+7c0004ac39400000
+3bbd00017d404f2a
+7fbd07b47f78db78
+3900000439410060
+7d5a53783920002a
+38c0000038e00004
+3ca080207ce903a6
+60a500037927f842
+7d2900d0792907e0
+7d29283878a50020
+78e900207d273a78
+38c600017cea31ae
+3908ffff4200ffd4
+79080021394a0004
+3b6000004082ffb8
+7f60a72a7c0004ac
+7f60af2a7c0004ac
+4bfff52138600009
+4bfff5553860000f
+7f44d3783c60c800
+7863002060630814
+e88100884bfff641
+6063082c3c60c800
+4bfff62d78630020
+3c60c800e8810090
+7863002060630844
+3c60c8004bfff619
+6063085c3881006c
+4bfff60578630020
+612908543d20c800
+7c0004ac79290020
+3d20c8007f604f2a
+7929002061290858
+7f604f2a7c0004ac
+392000173d40c800
+794a0020614a084c
+7d20572a7c0004ac
+392000013d40c800
+794a0020614a0850
+7d20572a7c0004ac
+6129083c3d20c800
+7c0004ac79290020
+3d20c8007f604f2a
+7929002061290840
+7f604f2a7c0004ac
+7fa5eb78e8610098
+3b4000207fe4fb78
+4bffedb13b600000
+7fe3fb7860000000
+4bfff51d4bfff489
+3a2000013860000f
+394000004bfff451
+e881008079480fa4
+7c70402af94100a0
+e94100a04bfff585
+7d1650ae88fc0001
+409e00a07f883800
+88fc00037d1750ae
+409e00907f883800
+2baa0010394a0004
+7e248b78409effc0
+4bffed417de37b78
+3b5affff60000000
+4bfff4617fe3fb78
+7f7b8a147b5a0021
+4082ff807f7b07b4
+4bffed197dc37378
+3920000060000000
+7d20a72a7c0004ac
+7d20af2a7c0004ac
+4bfff3793860000b
+4bfff3ad3860000f
+4bfff5317fe3fb78
+4bffece17e439378
+7f98d80060000000
+7f1bc378419cfd70
+3a2000004bfffd6c
+3c62ffff4bffff70
+7fe4fb787fc5f378
+4bffecb138637fd8
+3d20c80060000000
+7929002061290014
+7f204f2a7c0004ac
+394000013d00c800
+7908002061080020
+7d40472a7c0004ac
+7c0004ac39400000
+7bde00207d404f2a
+38de00013d00c800
+7cc903a661080024
+7908002039400001
+4200003438e00000
+3af7ffff7fe3fb78
+7e4393784bfff48d
+4bffec393b9cffff
+2f9f000160000000
+419e00283ad6ffff
+4bfffc783be00001
+7e604f2a7c0004ac
+7d40472a7c0004ac
+7ce04f2a7c0004ac
+382101404bffffb4
+48000cd438600001
+0100000000000000
+3c4c000100001280
+7c0802a6384291a4
+38637f903c62ffff
+f821ff7148000c91
+3be000003f60c800
+7b7b0020637b1000
+600000004bffebbd
+7fe0df2a7c0004ac
+635a10043f40c800
+7c0004ac7b5a0020
+3fa0c8007fe0d72a
+63bd080c4bfff78d
+7c0004ac7bbd0020
+3fc0c8007fe0ef2a
+7bde002063de0810
+7fe0f72a7c0004ac
+3920000c3f80c800
+7b9c0020639c0800
+7d20e72a7c0004ac
+6063c35038600000
+7c0004ac4bfff209
+7c0004ac7fe0ef2a
+3920000e7fe0f72a
+7d20e72a7c0004ac
+4bfff1e538602710
+7c0004ac39200200
+392000027d20ef2a
 7d20f72a7c0004ac
-4bfff16d3860000f
-7c0004ac39200006
-3b8000017d20ef2a
-7f80f72a7c0004ac
-4bfff14d3860000f
-7c0004ac39200920
-7c0004ac7d20ef2a
-3860000f7fe0f72a
-386000c84bfff131
-392004004bfff165
+4bfff1893860000f
+7fe0ef2a7c0004ac
+7c0004ac39200003
+3860000f7d20f72a
+392000064bfff16d
+7d20ef2a7c0004ac
+7c0004ac3b800001
+3860000f7f80f72a
+392009204bfff14d
 7d20ef2a7c0004ac
 7fe0f72a7c0004ac
-4bfff10d38600003
-4bfff141386000c8
-4bfff6cd4bfffa15
-2c2300004bfff721
-7c0004ac4082001c
-7c0004ac7f80df2a
-382100907f80d72a
-7c0004ac48000b64
-386000017f80df2a
-000000004bffffec
-0000068001000000
-384290083c4c0001
-600000003d20c000
-7929002061292000
-3d20c000f9228048
-7929002061290020
-7d204eea7c0004ac
-792906003d40001c
-7d295392614a2000
-394a0018e9428048
-7c0004ac3929ffff
-4e8000207d2057ea
-0000000000000000
-3c4c000100000000
-6000000038428fa4
-39290010e9228048
-7d204eea7c0004ac
-4082ffe871290008
-e94280485469063e
+4bfff1313860000f
+4bfff165386000c8
+7c0004ac39200400
+7c0004ac7d20ef2a
+386000037fe0f72a
+386000c84bfff10d
+4bfffa154bfff141
+4bfff7214bfff6cd
+4082001c2c230000
+7f80df2a7c0004ac
+7f80d72a7c0004ac
+48000b6438210090
+7f80df2a7c0004ac
+4bffffec38600001
+0100000000000000
+3c4c000100000680
+3d20c00038428ff4
+6129200060000000
+f922806879290020
+612900203d20c000
+7c0004ac79290020
+3d40001c7d204eea
+614a200079290600
+e94280687d295392
+3929ffff394a0018
 7d2057ea7c0004ac
 000000004e800020
 0000000000000000
-38428f603c4c0001
-fbc1fff07c0802a6
-3bc3fffffbe1fff8
-f821ffd1f8010010
-2fbf00008ffe0001
-38210030409e0010
-48000a8c38600000
-409e000c2b9f000a
-4bffff813860000d
-4bffff797fe3fb78
-000000004bffffd0
-0000028001000000
-408200082c240000
-2b8500243881fff0
-38600000f8640000
-3cc000014d9d0020
-60c6260078c683e4
-89490000e9240000
-419d002c2b8a0020
-70e800017cc75436
-2fa5000040820014
-38a0000a409e0054
-392900014800005c
-4bffffccf9240000
-409e00382fa50000
-38a0000a2b8a0030
-89490001409e003c
-409e00302f8a0078
-38a0001089490001
-409e00202f8a0078
-f924000039290002
-2f85001048000014
-2b8a0030409e000c
-38600000419effd8
-38c9ffd048000030
-2b8a000954ca063e
-7cc90734419d0034
-4c9c00207f892800
-7c6519d238e70001
-7c691a14f8e40000
-89270000e8e40000
-409effc82fa90000
-3949ff9f4e800020
+38428f903c4c0001
+e922806860000000
+7c0004ac39290010
+712900087d204eea
+5469063e4082ffe8
+7c0004ace9428068
+4e8000207d2057ea
+0000000000000000
+3c4c000100000000
+7c0802a638428f4c
+fbe1fff8fbc1fff0
+f80100103bc3ffff
+8ffe0001f821ffd1
+409e00102fbf0000
+3860000038210030
+2b9f000a48000a8c
+3860000d409e000c
+7fe3fb784bffff81
+4bffffd04bffff79
+0100000000000000
+2c24000000000280
+3881fff040820008
+f86400002b850024
+4d9d002038600000
+78c683e43cc00001
+e924000060c62600
+2b8a002089490000
+7cc75436419d002c
+4082001470e80001
+409e00542fa50000
+4800005c38a0000a
+f924000039290001
+2fa500004bffffcc
+2b8a0030409e0038
+409e003c38a0000a
+2f8a007889490001
+89490001409e0030
+2f8a007838a00010
+39290002409e0020
+48000014f9240000
+409e000c2f850010
+419effd82b8a0030
+4800003038600000
+54ca063e38c9ffd0
+419d00342b8a0009
+7f8928007cc90734
+38e700014c9c0020
+f8e400007c6519d2
+e8e400007c691a14
+2fa9000089270000
+4e800020409effc8
+554a063e3949ff9f
+419d00102b8a0019
+7d2907343929ffa9
+3949ffbf4bffffbc
 2b8a0019554a063e
-3929ffa9419d0010
-4bffffbc7d290734
-554a063e3949ffbf
-4d9d00202b8a0019
-4bffffe43929ffc9
-0000000000000000
-3920000000000000
-2f8a00007d4348ae
-7d234b78409e000c
-392900014e800020
-000000004bffffe8
-0000000000000000
-3900000078aae8c2
-7d2903a6392a0001
-78a9e8c242000030
-1d29fff8792a1f24
-7c8452147d035214
-392000007ca92a14
-7d4903a639450001
-4e80002042000018
-7d23412a7d24402a
-4bffffc439080008
-7d4849ae7d4448ae
-4bffffdc39290001
-0000000000000000
-3923ff9f00000000
-4d9d00202b890019
-7c6307b43863ffe0
-000000004e800020
+3929ffc94d9d0020
+000000004bffffe4
+0000000000000000
+7d4348ae39200000
+409e000c2f8a0000
+4e8000207d234b78
+4bffffe839290001
+0000000000000000
+78aae8c200000000
+392a000139000000
+420000307d2903a6
+792a1f2478a9e8c2
+7d0352141d29fff8
+7ca92a147c845214
+3945000139200000
+420000187d4903a6
+7d24402a4e800020
+390800087d23412a
+7d4448ae4bffffc4
+392900017d4849ae
+000000004bffffdc
+0000000000000000
+2b8900193923ff9f
+3863ffe04d9d0020
+4e8000207c6307b4
 0000000000000000
-38428d103c4c0001
-3d2037367c0802a6
-612935347d908026
-65293332792907c6
-6129313091810008
-f821ffa1480007d9
-7cde33787c7d1b78
-f92100203be00000
-612964633d206665
-65296261792907c6
-f921002861293938
-2fa900007ca92b78
-2fbf0000409e0080
-3be00001409e0008
-386000007fbf2040
-2e270000419d0058
-7f65f3923b9fffff
-7ca928507d3bf1d2
-886500207ca12a14
-4bffff4141920010
-5463063e60000000
-e93d00002fbb0000
-7c69e1ae7f65db78
-409effc83b9cffff
-38600001e93d0000
-fbfd00007fe9fa14
-8181000838210060
-480007747d908120
-409e00142b9e0010
-3bff00017929e102
-4bffff687fff07b4
-4bfffff07d29f392
-0300000000000000
-3c4c000100000580
-7c0802a638428c04
-f821ffb1480006e9
-7c7f1b78eb630000
-7cbd2b787c9c2378
-7fa3eb783bc00000
-600000004bfffe0d
-409d00147fa3f040
-7d3b5050e95f0000
-419c00107fa9e040
-3860000138210050
-7d3df0ae480006f0
-992a00003bde0001
-39290001e93f0000
-4bffffb8f93f0000
+3c4c000100000000
+7c0802a638428cfc
+7d9080263d203736
+792907c661293534
+9181000865293332
+480007d961293130
+7c7d1b78f821ffa1
+3be000007cde3378
+3d206665f9210020
+792907c661296463
+6129393865296261
+7ca92b78f9210028
+409e00802fa90000
+409e00082fbf0000
+7fbf20403be00001
+419d005838600000
+3b9fffff2e270000
+7d3bf1d27f65f392
+7ca12a147ca92850
+4192001088650020
+600000004bffff41
+2fbb00005463063e
+7f65db78e93d0000
+3b9cffff7c69e1ae
+e93d0000409effc8
+7fe9fa1438600001
+38210060fbfd0000
+7d90812081810008
+2b9e001048000774
+7929e102409e0014
+7fff07b43bff0001
+7d29f3924bffff68
+000000004bfffff0
+0000058003000000
+38428bf03c4c0001
+480006e97c0802a6
+eb630000f821ffb1
+7c9c23787c7f1b78
+3bc000007cbd2b78
+4bfffe0d7fa3eb78
+7fa3f04060000000
+e95f0000409d0014
+7fa9e0407d3b5050
+38210050419c0010
+480006f038600001
+3bde00017d3df0ae
+e93f0000992a0000
+f93f000039290001
+000000004bffffb8
+0000058001000000
+38428b703c4c0001
+480006617c0802a6
+7c7d1b78f821ffa1
+7ca32b787c9b2378
+38a0000a38800000
+eb5d00007cde3378
+7d1943787cfc3b78
+4bfffc497d3f4b78
+3940000060000000
+2fbe00007c6307b4
+2faa0000409e006c
+39400001409e0008
+7f8348007d3f5214
+409d00447d2a07b4
+2f8300007c6a1850
+3929000178690020
+3d408000419c0010
+409e00087f835000
+2c29000139200001
+418200143929ffff
+7d5a3850e8fd0000
+419c00307faad840
+3860000038210060
+2b9c001048000604
+7bdee102409e0014
+7d4a07b4394a0001
+7fdee3924bffff7c
+9b2700004bfffff0
+394a0001e95d0000
+4bffffa8f95d0000
 0100000000000000
-3c4c000100000580
-7c0802a638428b84
-f821ffa148000661
-7c9b23787c7d1b78
-388000007ca32b78
-7cde337838a0000a
-7cfc3b78eb5d0000
-7d3f4b787d194378
-600000004bfffc49
-7c6307b439400000
-409e006c2fbe0000
-409e00082faa0000
-7d3f521439400001
-7d2a07b47f834800
-7c6a1850409d0044
-786900202f830000
-419c001039290001
-7f8350003d408000
-39200001409e0008
-3929ffff2c290001
-e8fd000041820014
-7faad8407d5a3850
-38210060419c0030
-4800060438600000
-409e00142b9c0010
-394a00017bdee102
-4bffff7c7d4a07b4
-4bfffff07fdee392
-e95d00009b270000
-f95d0000394a0001
-000000004bffffa8
-0000078001000000
-38428a883c4c0001
-480005397c0802a6
-7c741b79f821fed1
-38600000f8610060
-2fa4000041820068
-39210040419e0060
-3ac4ffff3e42ffff
-f92100703b410020
-3ae0000060000000
-3a527ff839228040
-f92100783ba10060
-ebc1006089250000
+3c4c000100000780
+7c0802a638428a74
+f821fed148000539
+f86100607c741b79
+4182006838600000
+419e00602fa40000
+6000000039210040
+3b4100203ac4ffff
+60000000f9210070
+392280603ae00000
+3ba100603a428018
+89250000f9210078
+2fa90000ebc10060
+7ff4f050419e0010
+419c00207fbfb040
+993e000039200000
+7e941850e8610060
+382101307e8307b4
+2b89002548000508
+409e048839450001
+8925000038e00000
+f8a10068e9010070
+7d2741ae7cea07b4
+8d25000139070001
+2b8900647d0807b4
+2b890069419e0058
+2b890075419e0050
+2b890078419e0048
+2b890058419e0040
+2b890070419e0038
+2b890063419e0030
+2b890073419e0028
+2b890025419e0020
+2b89004f419e0018
+2b89006f419e0010
+409eff8838e70001
+2b890025394a0002
+7d1a42147d4a07b4
+992800207d5a5214
+409e00209aea0020
+f9210060393e0001
+993e000039200025
+38a90002e9210068
+892100414bffff04
+3a2600087fffb050
+3a600030eb660000
+3929ffd23b010042
+4082039c712900fd
+3b2000043aa00000
+3a0000013b800000
+7ddb00d039e0002d
+2b89006c48000108
+88f8000138d80001
+419d0118419e033c
+419e02402b890063
+2b89004f419d0038
+2b890058419e01e8
+3949ffd0419e0188
+2b8a0009554a063e
+395c0001419d00c4
+993c00207f81e214
+480000b0795c0020
+419e03042b890068
+419e000c2b890069
+409effc82b890064
+7d41e2142b890075
+7f6adb789aea0020
+57291838419e0034
+7e0948363929ffff
+418200207f694839
+e921006099e80000
+f921006039290001
+7d52482a7b291f24
+e88100607dca5038
+38e0000a7d465378
+7f45d378f9410080
+7e689b7839200000
+7c9e20507fa3eb78
+4bfffc9d7c84f850
+e9410080e8810060
+38c0000a7ea7ab78
+7d4553787c9e2050
+7fa3eb787c84f850
+3b1800014bfffaed
+e901006089380000
 419e00102fa90000
-7fbfb0407ff4f050
-39200000419c0020
-e8610060993e0000
-7e8307b47e941850
-4800050838210130
-394500012b890025
-38e00000409e0488
-e901007089250000
-7cea07b4f8a10068
-390700017d2741ae
-7d0807b48d250001
-419e00582b890064
-419e00502b890069
-419e00482b890075
-419e00402b890078
-419e00382b890058
-419e00302b890070
-419e00282b890063
-419e00202b890073
-419e00182b890025
-419e00102b89004f
-38e700012b89006f
-394a0002409eff88
-7d4a07b42b890025
-7d5a52147d1a4214
-9aea002099280020
-393e0001409e0020
-39200025f9210060
-e9210068993e0000
-4bffff0438a90002
-7fffb05089210041
-eb6600003a260008
-3b0100423a600030
-712900fd3929ffd2
-3aa000004082039c
-3b8000003b200004
-39e0002d3a000001
-480001087ddb00d0
-38d800012b89006c
-419e033c88f80001
-2b890063419d0118
-419d0038419e0240
-419e01e82b89004f
-419e01882b890058
-554a063e3949ffd0
-419d00c42b8a0009
-7f81e214395c0001
-795c0020993c0020
-2b890068480000b0
-2b890069419e0304
-2b890064419e000c
-2b890075409effc8
-9aea00207d41e214
-419e00347f6adb78
-3929ffff57291838
-7f6948397e094836
-99e8000041820020
-39290001e9210060
-7b291f24f9210060
-7dca50387d52482a
-7d465378e8810060
-f941008038e0000a
-392000007f45d378
-7fa3eb787e689b78
-7c84f8507c9e2050
-e88100604bfffc9d
-7ea7ab78e9410080
-7c9e205038c0000a
-7c84f8507d455378
-4bfffaed7fa3eb78
-893800003b180001
-2fa90000e9010060
-7d5e4050419e0010
-419dfee47fbf5040
-4bfffe907e268b78
-419e016c2b890073
-2b89006f419d006c
-2b890070419e00d4
-7d21e214409efef0
-7f66db7838e00010
-9ae900207c8af850
-3920000239000020
-7fa3eb787f45d378
-e88100604bfffc0d
-7fa3eb78e8a10078
-7c84f8507c9e2050
-e88100604bfffb75
-38c000107ea7ab78
-7c9e20507f65db78
-2b8900784bffff5c
-2b89007a419e0018
-2b890075419e01cc
-3aa000014bfffeb8
+7fbf50407d5e4050
+7e268b78419dfee4
+2b8900734bfffe90
+419d006c419e016c
+419e00d42b89006f
+409efef02b890070
 38e000107d21e214
-7e689b787c8af850
-7b291f249ae90020
-7fa3eb787f45d378
-392000007d72482a
-7d665b787f6b5838
-4bfffb89f9610080
+7c8af8507f66db78
+390000209ae90020
+7f45d37839200002
+4bfffc0d7fa3eb78
+e8a10078e8810060
+7c9e20507fa3eb78
+4bfffb757c84f850
 7ea7ab78e8810060
-7c9e205038c00010
-7d655b78e9610080
-7d21e2144bfffeec
-7c8af85038e00008
+7f65db7838c00010
+4bffff5c7c9e2050
+419e00182b890078
+419e01cc2b89007a
+4bfffeb82b890075
+7d21e2143aa00001
+7c8af85038e00010
 9ae900207e689b78
 7f45d3787b291f24
 7d72482a7fa3eb78
 7f6b583839200000
 f96100807d665b78
-e88100604bfffb35
-38c000087ea7ab78
-4bffffac7c9e2050
-390000207d21e214
-38c0000138e0000a
-7f45d3789ae90020
-7c8af85039200000
-4bfffaf97fa3eb78
-9b690000e9210060
-39290001e9210060
-4bfffe6cf9210060
-38a0000a7d21e214
-f9410088f9010090
-7f43d37838800000
-4bfff73d9ae90020
-f861008060000000
-4bfff8617f63db78
-e921008060000000
-409d00407fa91840
-e94100887c634850
-2fa30000e9010090
-7d4af85039230001
-39200001409e0008
-e8c100602c290001
-418200103929ffff
-7faa38407ce83050
-e8810060419d0020
-7fa3eb787f65db78
-7c84f8507c9e2050
-4bfffdd44bfff9cd
-98e6000038e00020
-38e70001e8e10060
-4bffffb4f8e10060
-3b2000082b87006c
-7cd83378409efdb0
-2b8700684bfffda8
-409efd9c3b200002
-3b2000017cd83378
-3b2000084bfffd90
-3a6000204bfffd88
-4bfffc603b010041
-7d455378993e0000
-39290001e9210060
-4bfffb24f9210060
-0100000000000000
-f9c1ff7000001280
-fa01ff80f9e1ff78
-fa41ff90fa21ff88
-fa81ffa0fa61ff98
-fac1ffb0faa1ffa8
-fb01ffc0fae1ffb8
-fb41ffd0fb21ffc8
-fb81ffe0fb61ffd8
-fbc1fff0fba1ffe8
-f8010010fbe1fff8
-e9c1ff704e800020
-ea01ff80e9e1ff78
-ea41ff90ea21ff88
-ea81ffa0ea61ff98
-eac1ffb0eaa1ffa8
-eb01ffc0eae1ffb8
-eb41ffd0eb21ffc8
-eb81ffe0eb61ffd8
-eba1ffe8e8010010
-ebc1fff07c0803a6
-4e800020ebe1fff8
-e8010010ebc1fff0
-7c0803a6ebe1fff8
-000000004e800020
+e88100604bfffb89
+38c000107ea7ab78
+e96100807c9e2050
+4bfffeec7d655b78
+38e000087d21e214
+7e689b787c8af850
+7b291f249ae90020
+7fa3eb787f45d378
+392000007d72482a
+7d665b787f6b5838
+4bfffb35f9610080
+7ea7ab78e8810060
+7c9e205038c00008
+7d21e2144bffffac
+38e0000a39000020
+9ae9002038c00001
+392000007f45d378
+7fa3eb787c8af850
+e92100604bfffaf9
+e92100609b690000
+f921006039290001
+7d21e2144bfffe6c
+f901009038a0000a
+38800000f9410088
+9ae900207f43d378
+600000004bfff73d
+7f63db78f8610080
+600000004bfff861
+7fa91840e9210080
+7c634850409d0040
+e9010090e9410088
+392300012fa30000
+409e00087d4af850
+2c29000139200001
+3929ffffe8c10060
+7ce8305041820010
+419d00207faa3840
+7f65db78e8810060
+7c9e20507fa3eb78
+4bfff9cd7c84f850
+38e000204bfffdd4
+e8e1006098e60000
+f8e1006038e70001
+2b87006c4bffffb4
+409efdb03b200008
+4bfffda87cd83378
+3b2000022b870068
+7cd83378409efd9c
+4bfffd903b200001
+4bfffd883b200008
+3b0100413a600020
+993e00004bfffc60
+e92100607d455378
+f921006039290001
+000000004bfffb24
+0000128001000000
+f9e1ff78f9c1ff70
+fa21ff88fa01ff80
+fa61ff98fa41ff90
+faa1ffa8fa81ffa0
+fae1ffb8fac1ffb0
+fb21ffc8fb01ffc0
+fb61ffd8fb41ffd0
+fba1ffe8fb81ffe0
+fbe1fff8fbc1fff0
+4e800020f8010010
+e9e1ff78e9c1ff70
+ea21ff88ea01ff80
+ea61ff98ea41ff90
+eaa1ffa8ea81ffa0
+eae1ffb8eac1ffb0
+eb21ffc8eb01ffc0
+eb61ffd8eb41ffd0
+e8010010eb81ffe0
+7c0803a6eba1ffe8
+ebe1fff8ebc1fff0
+ebc1fff04e800020
+ebe1fff8e8010010
+4e8000207c0803a6
 6d6f636c65570a0a
 63694d206f742065
 2120747461776f72
@@ -1597,6 +1599,8 @@ e8010010ebc1fff0
 000000204d415242
 4853414c46495053
 0000000000000020
+54454e5245485445
+0000000000000020
 2020202020202020
 203a4d4152422020
 000a424b20646c25
index 84033c5f034fc0eb2610a6312e476fef8cafcc4d..b75722c7c045b0221a4c2b013fb606f42749f87d 100644 (file)
@@ -527,11 +527,11 @@ f88100d83be10020
 f8e100f038c100d8
 f90100f87fe3fb78
 f9410108f9210100
-6000000048001af9
+6000000048001b0d
 7fe3fb787c7e1b78
-6000000048001611
+6000000048001625
 7fc3f378382100b0
-00000000480020b8
+00000000480020cc
 0000028001000000
 000000004e800020
 0000000000000000
@@ -540,555 +540,288 @@ f9410108f9210100
 0000000000000000
 3842a5203c4c0001
 7d8000267c0802a6
-9181000848001ff5
-48001505f821fed1
+9181000848002009
+48001519f821fed1
 3c62ffff60000000
-4bffff3938637b78
+4bffff3938637b88
 548400023880ffff
 7c8026ea7c0004ac
 3fe0c0003c62ffff
-63ff000838637b98
+63ff000838637ba8
 3c62ffff4bffff15
-38637bb87bff0020
+38637bc87bff0020
 7c0004ac4bffff05
 73e900017fe0feea
 3c62ffff41820010
-4bfffee938637bd0
+4bfffee938637be0
 4e00000073e90002
 3c62ffff41820010
-4bfffed138637bd8
+4bfffed138637be8
 4d80000073e90004
 3c62ffff41820010
-4bfffeb938637be0
+4bfffeb938637bf0
 4d00000073e90008
 3c62ffff41820010
-4bfffea138637be8
-3b7b7f683f62ffff
-4bfffe917f63db78
-3c80c000418e0028
-7884002060840010
-7c8026ea7c0004ac
-7884b5823c62ffff
-4bfffe6938637bf8
-3c80c0004192004c
-7884002060840018
-7c8026ea7c0004ac
-788460223c62ffff
-4bfffe4138637c10
-608400303c80c000
+4bfffea138637bf8
+4182001073e90010
+38637c083c62ffff
+3f62ffff4bfffe8d
+7f63db783b7b7f88
+418e00284bfffe7d
+608400103c80c000
 7c0004ac78840020
 3c62ffff7c8026ea
-38637c287884b282
-3d20c0004bfffe1d
-7929002061290020
-7d204eea7c0004ac
-792906003c80000f
-3c62ffff60844240
-38637c407c892392
-418a02584bfffded
-63bd00383fa0c000
-7c0004ac7bbd0020
-3d40c0007fa0eeea
-614a600439200002
-7c0004ac794a0020
-3fe0c0007d2057aa
-63ff60003920ff9f
-7c0004ac7bff0020
-7c0004ac7d20ffaa
-579c063e7f80feaa
-7fc0feaa7c0004ac
-7c0004ac57de063e
-4bfffd3d7fe0feaa
-3c62ffff57ff063e
-7fc5f3787fe6fb78
-38637c607f84e378
-7f89f3784bfffd65
-2f8900007d29fb78
-7f89f038419e0164
-2f8900ff7d29f838
-2b9c0001419e0154
-2b9e0002409e0374
-2b9e0020419e000c
-3bffffe8409e0134
-2b9f000157ff063e
-3fe0c000419d0124
-63ff600039200035
-7c0004ac7bff0020
-3fc0c0007d20ffaa
-63de60043b400002
-7c0004ac7bde0020
-7c0004ac7f40f7aa
-7c0004ac7d20ffaa
-4bfffc957f80feaa
-3c62ffff579c063e
-38637c807f84e378
-738900024bfffcc5
-3c62ffff40820090
-4bfffcb138637ca0
-7f40f7aa7c0004ac
-7c0004ac39200006
-4bfffc557d20ffaa
+38637c187884b582
+4192004c4bfffe55
+608400183c80c000
+7c0004ac78840020
+3c62ffff7c8026ea
+38637c3078846022
+3c80c0004bfffe2d
+7884002060840030
+7c8026ea7c0004ac
+7884b2823c62ffff
+4bfffe0938637c48
+612900203d20c000
+7c0004ac79290020
+3c80000f7d204eea
+6084424079290600
+7c8923923c62ffff
+4bfffdd938637c60
+3fa0c000418a0258
+7bbd002063bd0038
+7fa0eeea7c0004ac
+392000023d40c000
+794a0020614a6004
+7d2057aa7c0004ac
+3920ff9f3fe0c000
+7bff002063ff6000
+7d20ffaa7c0004ac
+7f80feaa7c0004ac
+7c0004ac579c063e
+57de063e7fc0feaa
+7fe0feaa7c0004ac
+57ff063e4bfffd29
+7fe6fb783c62ffff
+7f84e3787fc5f378
+4bfffd5138637c80
+7d29fb787f89f378
+419e01642f890000
+7d29f8387f89f038
+419e01542f8900ff
+409e03742b9c0001
+419e000c2b9e0002
+409e01342b9e0020
+57ff063e3bffffe8
+419d01242b9f0001
+392000353fe0c000
+7bff002063ff6000
+7d20ffaa7c0004ac
+3b4000023fc0c000
+7bde002063de6004
 7f40f7aa7c0004ac
-7c0004ac39200001
-392000007d20ffaa
 7d20ffaa7c0004ac
-7c0004ac639c0002
-7c0004ac7f80ffaa
-4bfffc1d7d20f7aa
-3b4000053b200002
-7f20f7aa7c0004ac
-7f40ffaa7c0004ac
 7f80feaa7c0004ac
-4bfffbf5579c063e
-4082ffdc73890001
-38637cb83c62ffff
-3d40c0004bfffc25
-794a0020614a6008
-7d20562a7c0004ac
-652920005529021e
-7c0004ac61291f6b
-7f63db787d20572a
-7bbd00204bfffbf5
-7fa4eb783c62ffff
-4bfffbe138637cc8
-7f63db783be00001
-419200284bfffbd5
-3c82ffff3ca2ffff
-38a57ce83c62ffff
-38637d0038847cf8
-48000fbd4bfffbb5
-418e002460000000
-38637d303c62ffff
-386000004bfffb9d
-3be0000048000144
-4bffffb03ba00000
-419e00842fbf0000
-38637d483c62ffff
-3c9df0004bfffb75
-7884002038a00040
-4800137d38610070
-e921007060000000
-614a464c3d400002
-79290600794a83e4
-7fa95000614a457f
-3c62ffff419e0080
-4bfffb3138637d60
-8941007688610077
-8901007489210075
-88c1007288e10073
-8881007088a10071
-3c62fffff8610060
-4bfffb0138637de0
-38637e103c62ffff
-3c80ff004bfffaf5
-6084400038a0ffff
-7884002054a50422
-480012f53c604000
-3c62ffff60000000
-4bfffac938637e30
-4bffff284bfffb49
-2f89000189210075
-a1210082409e0010
-419e00102f890015
-38637d803c62ffff
-ebe100904bffff6c
-3bc000003f02ffff
-3b187d983b2100b0
-7bff00207fffea14
-7f89f040a12100a8
-80810088419d0034
-38637dc03c62ffff
-4bfffae54bfffa65
-2fa3ffffe8610088
-38210130419eff58
-7d83812081810008
-3c9ff00048001b34
-7884002038a00038
-4800124d7f23cb78
-812100b060000000
-409e004c2f890001
-eb6100c0eb4100d0
-7fc4f378eb8100b8
-7f66db787f03c378
-3f9cf0007b450020
-7c9de2144bfff9fd
-788400207b450020
-480012057f63db78
-a12100a660000000
-7bff00207fe9fa14
-7bde00203bde0001
-2b9c00204bffff50
-2b9e00ba409efdcc
-2b9f0018409efdc4
-3c62ffff409efdbc
-4bfff9a938637cb0
-000000004bfffd78
-0000088003000000
-612908043d20c800
-7c0004ac79290020
-3d40c8007c604f2a
-614a080839200001
+579c063e4bfffc81
+7f84e3783c62ffff
+4bfffcb138637ca0
+4082009073890002
+38637cc03c62ffff
+7c0004ac4bfffc9d
+392000067f40f7aa
+7d20ffaa7c0004ac
+7c0004ac4bfffc41
+392000017f40f7aa
+7d20ffaa7c0004ac
+7c0004ac39200000
+639c00027d20ffaa
+7f80ffaa7c0004ac
+7d20f7aa7c0004ac
+3b2000024bfffc09
+7c0004ac3b400005
+7c0004ac7f20f7aa
+7c0004ac7f40ffaa
+579c063e7f80feaa
+738900014bfffbe1
+3c62ffff4082ffdc
+4bfffc1138637cd8
+614a60083d40c000
 7c0004ac794a0020
-4e8000207d20572a
-0000000000000000
-3863ffff00000000
-3923000178630020
-600000007d2903a6
-4e8000204200fffc
-0000000000000000
-3d20c80000000000
-6129001439400001
-792900207d431830
+5529021e7d20562a
+61291f6b65292000
+7d20572a7c0004ac
+4bfffbe17f63db78
+3c62ffff7bbd0020
+38637ce87fa4eb78
+3be000014bfffbcd
+4bfffbc17f63db78
+3ca2ffff41920028
+3c62ffff3c82ffff
+38847d1838a57d08
+4bfffba138637d20
+6000000048000fbd
+3c62ffff418e0024
+4bfffb8938637d50
+4800014438600000
+3ba000003be00000
+2fbf00004bffffb0
+3c62ffff419e0084
+4bfffb6138637d68
+38a000403c9df000
+3861007078840020
+600000004800137d
+3d400002e9210070
+794a83e4614a464c
+614a457f79290600
+419e00807fa95000
+38637d803c62ffff
+886100774bfffb1d
+8921007589410076
+88e1007389010074
+88a1007188c10072
+f861006088810070
+38637e003c62ffff
+3c62ffff4bfffaed
+4bfffae138637e30
+38a0ffff3c80ff00
+54a5042260844000
+3c60400078840020
+60000000480012f5
+38637e503c62ffff
+4bfffb354bfffab5
+892100754bffff28
+409e00102f890001
+2f890015a1210082
+3c62ffff419e0010
+4bffff6c38637da0
+3f02ffffebe10090
+3b2100b03bc00000
+7fffea143b187db8
+a12100a87bff0020
+419d00347f89f040
+3c62ffff80810088
+4bfffa5138637de0
+e86100884bfffad1
+419eff582fa3ffff
+8181000838210130
+48001b347d838120
+38a000383c9ff000
+7f23cb7878840020
+600000004800124d
+2f890001812100b0
+eb4100d0409e004c
+eb8100b8eb6100c0
+7f03c3787fc4f378
+7b4500207f66db78
+4bfff9e93f9cf000
+7b4500207c9de214
+7f63db7878840020
+6000000048001205
+7fe9fa14a12100a6
+3bde00017bff0020
+4bffff507bde0020
+409efdcc2b9c0020
+409efdc42b9e00ba
+409efdbc2b9f0018
+38637cd03c62ffff
+4bfffd784bfff995
+0300000000000000
+3d20c80000000880
+7929002061290804
 7c604f2a7c0004ac
-610800183d00c800
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
+392000013d40c800
+794a0020614a0808
+7d20572a7c0004ac
+000000004e800020
+0000000000000000
+786300203863ffff
+7d2903a639230001
+4200fffc60000000
 000000004e800020
 0000000000000000
 394000013d20c800
 7d43183061290014
 7c0004ac79290020
 3d00c8007c604f2a
-790800206108001c
+7908002061080018
 7d40472a7c0004ac
 7c0004ac39400000
 4e8000207d404f2a
 0000000000000000
-3d40c80000000000
-614a083439200025
-7c0004ac794a0020
-3d40c8007d20572a
-614a083839200001
-7c0004ac794a0020
-4e8000207d20572a
-0000000000000000
-8944000100000000
-794a45e489240000
-892400027d4a4b78
-7d2a5378792983e4
-7929c1e489240003
-552ac03e7d295378
-512a463e512a421e
-7d401f2a7c0004ac
-000000004e800020
-0000000000000000
-7c601e2a7c0004ac
-7869c20278630020
-9924000298640003
-7863460278698402
-9864000099240001
+3d20c80000000000
+6129001439400001
+792900207d431830
+7c604f2a7c0004ac
+6108001c3d00c800
+7c0004ac79080020
+394000007d40472a
+7d404f2a7c0004ac
 000000004e800020
 0000000000000000
-38429d903c4c0001
-4800185d7c0802a6
-7c7e1b78f821ff21
-38637f003c62ffff
-600000004bfff7b5
-390100603ca08020
-3940000460a50003
-7d1d43783920002a
-38e0000478a50020
-7ce903a638c00000
-792907e07927f842
-7d2928387d2900d0
-78e900207d273a78
-38c600017ce831ae
-394affff4200ffe0
-794a002139080004
-3d20c8004082ffc4
-6129080c3be00000
-7c0004ac79290020
-3d20c8007fe04f2a
-7929002061290810
-7fe04f2a7c0004ac
-4bfffd8d38600009
-4bfffdc13860000f
-7fa4eb783c60c800
-7863002060630814
-3c60c8004bfffead
-6063082c38810064
-4bfffe9978630020
-388100683c60c800
-7863002060630844
-3c60c8004bfffe85
-6063085c3881006c
-4bfffe7178630020
-612908543d20c800
-7c0004ac79290020
-3d20c8007fe04f2a
-7929002061290858
-7fe04f2a7c0004ac
-392000173d40c800
-794a0020614a084c
+392000253d40c800
+794a0020614a0834
 7d20572a7c0004ac
 392000013d40c800
-794a0020614a0850
+794a0020614a0838
 7d20572a7c0004ac
-6129083c3d20c800
-7c0004ac79290020
-3d20c8007fe04f2a
-7929002061290840
-7fe04f2a7c0004ac
-22de00017fc3f378
-213e00034bfffd0d
-793500203ee2ffff
-7d2907b47ed607b4
-3b0100703be00000
-7f3db2143af77f28
-7f5d4a147ebdaa14
-3860000f4bfffd75
-4bfffca93b800000
-7b890fa43b600001
-7c77482a7f04c378
-7d39e0ae4bfffde1
-7f89500089590010
-7d35e0ae409e0048
-7f895000895a0010
-3b9c0004409e0038
-409effc82bbc0010
-393f00012fbb0000
-409e00287d3c07b4
-419e001c2f890020
-7f9fe3787fc3f378
-4bffff8c4bfffcb9
-4bffffc83b600000
-38bf00017f9fe378
-7cbc07b47fc3f378
-213e00034bfffc99
-793500207eddb214
-7ebdaa147d2907b4
-4bfffcc97fbd4a14
-3b6000003860000f
-3b4000014bfffbfd
-7f04c3787b690fa4
-4bfffd357c77482a
-895600107d39d8ae
-409e00447f895000
-895d00107d35d8ae
-409e00347f895000
-2bbb00103b7b0004
-2fba0000409effc8
-393c0001419e0028
-7d3c07b42f89001f
-7fc3f378419d0018
-4bffff904bfffc11
-4bffffcc3b400000
-7fbfe2142f9f0020
-409e006c7fbd0e70
-38637f103c62ffff
-600000004bfff4cd
-3be000007fc3f378
-7f9fe8004bfffb8d
-3d40c800419c0070
-614a080c39200000
-7c0004ac794a0020
-3d40c8007d20572a
-794a0020614a0810
-7d20572a7c0004ac
-4bfffaed3860000b
-4bfffb213860000f
-48001554382100e0
-3c62ffff7cbfe050
-7ca501947ca50e70
-38637f187fa4eb78
-4bfff4517ca507b4
-4bffff8460000000
-3bff00017fc3f378
-7fff07b44bfffb59
-000000004bffff7c
-00000b8001000000
-384299e03c4c0001
-3d40c8007c0802a6
-3920000e614a0800
-f8010010794a0020
-7c0004acf821ffa1
-3c62ffff7d20572a
-4bfff3f138637fd0
-3821006060000000
-7c0803a6e8010010
-000000004e800020
-0000008001000000
-384299883c4c0001
-3d40c8007c0802a6
-39200001614a0800
-f8010010794a0020
-7c0004acf821ffa1
-3c62ffff7d20572a
-4bfff39938637f48
-3821006060000000
-7c0803a6e8010010
 000000004e800020
-0000008001000000
-384299303c4c0001
-390000807c0802a6
-3d40aaaa7d0903a6
-614aaaaa3d204000
-f821ff8148001409
-3929000491490000
-4bfff3b54200fff8
-3940008060000000
-7d4903a63d00aaaa
-3be000003d204000
-814900006108aaaa
-419e000c7f8a4000
-7fff07b43bff0001
-4200ffe839290004
-3d40555539000080
-3d2040007d0903a6
-91490000614a5555
-4200fff839290004
-600000004bfff359
-3d00555539400080
-3d2040007d4903a6
-8149000061085555
-419e000c7f8a4000
-7fff07b43bff0001
-4200ffe839290004
-419e001c2fbf0000
-38a001003c62ffff
-38637e487fe4fb78
-600000004bfff295
-3ce080203d000008
-60e700037d0903a6
-392000013d404000
-7928f84278e70020
-7d2900d0792907e0
-7d293838394a0004
-912afffc7d294278
-4bfff2c54200ffe4
-3d00000860000000
-7d0903a63ce08020
-3d40400060e70003
-392000013ba00000
-7928f84278e70020
+0000000000000000
+8924000089440001
+7d4a4b78794a45e4
+792983e489240002
+892400037d2a5378
+7d2953787929c1e4
+512a421e552ac03e
+7c0004ac512a463e
+4e8000207d401f2a
+0000000000000000
+7c0004ac00000000
+786300207c601e2a
+986400037869c202
+7869840299240002
+9924000178634602
+4e80002098640000
+0000000000000000
+3c4c000100000000
+7c0802a638429d7c
+f821ff214800185d
+3c62ffff7c7e1b78
+4bfff7a138637f20
+3ca0802060000000
+60a5000339010060
+3920002a39400004
+78a500207d1d4378
+38c0000038e00004
+7927f8427ce903a6
 7d2900d0792907e0
-7d2942787d293838
-7f884840810a0000
-3bbd0001419e000c
-394a00047fbd07b4
-2fbd00004200ffd4
-3c62ffff419e001c
-7fa4eb783ca00008
-4bfff1e138637e70
-3920200060000000
-7d2903a639400000
-794800203d2a1000
-394a000139290002
-9109000079291764
-4bfff2254200ffe8
-3920200060000000
-7d2903a639400000
-3d2a10003bc00000
-8129000879291764
-7f8950005529043e
-3bde0001419e000c
-394a00017fde07b4
-2fbe00004200ffdc
-3c62ffff419e001c
-7fc4f37838a02000
-4bfff15938637e98
-7fffea1460000000
-7ffff21438600000
-409e00a42f9f0000
-38637ec03c62ffff
-600000004bfff135
-3d4000047c9602a6
-7d4903a678840020
-3d49080039200000
-f92a0000794a1f24
-4200fff039290001
-7c9f20507ff602a6
-7fff23963fe06400
-600000004bfff169
-7d3602a67bff0020
-792900203d000004
-3d4040007d0903a6
-394a0008e90a0000
-7cb602a64200fff8
-3ca064007d254850
-3c62ffff7ca54b96
-38637ed07fe4fb78
-4bfff0a978a50060
-3860000160000000
-4800119c38210080
-0100000000000000
-3c4c000100000380
-7c0802a638429644
-f821fec1480010f5
-3bc000013fe0c800
-7bff002063ff0014
-386000004bfffc49
-7c0004ac4bfff72d
-3f80c8007fc0ff2a
-7b9c0020639c0020
-7fc0e72a7c0004ac
-7c0004ac3ba00000
-386000017fa0ff2a
-392000024bfff6fd
-7d20ff2a7c0004ac
-7fc0e72a7c0004ac
-7fa0ff2a7c0004ac
-3b8100703c62ffff
-3e02ffff38637f88
-600000004bffeffd
-fb8100803d22ffff
-39297f983de2ffff
-3e42ffff3dc2ffff
-f92100983ae10063
-3be000003ac10061
-39ef7fa83a107f28
-3a527f6839ce7fb0
-3b20000139210064
-3ea0c8003e80c800
-39210068f9210088
-6294080c7f39f830
-7b33002062b50810
-f92100903bc00000
-3ba000003b000000
-7ab500207a940020
-7fbeeb7848000054
-419e029c2f9d000f
-612900143d20c800
-7c0004ac79290020
-3d00c8007e604f2a
-6108002439400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-7f78db783bbd0001
-394100607fbd07b4
-3920002a39000004
-38e000047d5a5378
-7ce903a638c00000
-7927f8423ca08020
-792907e060a50003
-78a500207d2900d0
 7d273a787d292838
-7cea31ae78e90020
-4200ffd438c60001
-394a00043908ffff
-4082ffb879080021
-7c0004ac3b600000
-7c0004ac7f60a72a
-386000097f60af2a
-3860000f4bfff521
-3c60c8004bfff555
-606308147f44d378
-4bfff64178630020
-3c60c800e8810088
+7ce831ae78e90020
+4200ffe038c60001
+39080004394affff
+4082ffc4794a0021
+3be000003d20c800
+792900206129080c
+7fe04f2a7c0004ac
+612908103d20c800
+7c0004ac79290020
+386000097fe04f2a
+3860000f4bfffd8d
+3c60c8004bfffdc1
+606308147fa4eb78
+4bfffead78630020
+388100643c60c800
 786300206063082c
-e88100904bfff62d
-606308443c60c800
-4bfff61978630020
+3c60c8004bfffe99
+6063084438810068
+4bfffe8578630020
 3881006c3c60c800
 786300206063085c
-3d20c8004bfff605
+3d20c8004bfffe71
 7929002061290854
-7f604f2a7c0004ac
+7fe04f2a7c0004ac
 612908583d20c800
 7c0004ac79290020
-3d40c8007f604f2a
+3d40c8007fe04f2a
 614a084c39200017
 7c0004ac794a0020
 3d40c8007d20572a
@@ -1096,491 +829,760 @@ e88100904bfff62d
 7c0004ac794a0020
 3d20c8007d20572a
 792900206129083c
-7f604f2a7c0004ac
+7fe04f2a7c0004ac
 612908403d20c800
 7c0004ac79290020
-e86100987f604f2a
-7fe4fb787fa5eb78
-3b6000003b400020
-600000004bffedc5
-4bfff4897fe3fb78
-3860000f4bfff51d
-4bfff4513a200001
-79480fa439400000
-f94100a0e8810080
-4bfff5857c70402a
-88fc0001e94100a0
-7f8838007d1650ae
-7d1750ae409e00a0
-7f88380088fc0003
-394a0004409e0090
-409effc02baa0010
-7de37b787e248b78
-600000004bffed55
-7fe3fb783b5affff
-7b5a00214bfff461
-7f7b07b47f7b8a14
-7dc373784082ff80
-600000004bffed2d
-7c0004ac39200000
-7c0004ac7d20a72a
-3860000b7d20af2a
-3860000f4bfff379
-7fe3fb784bfff3ad
-7e4393784bfff531
-600000004bffecf5
-419cfd707f98d800
-4bfffd6c7f1bc378
-4bffff703a200000
-7fc5f3783c62ffff
-38637fb87fe4fb78
-600000004bffecc5
-612900143d20c800
-7c0004ac79290020
-3d00c8007f204f2a
-6108002039400001
-7c0004ac79080020
-394000007d40472a
-7d404f2a7c0004ac
-3d00c8007bde0020
-6108002438de0001
-394000017cc903a6
-38e0000079080020
-7fe3fb7842000034
-4bfff48d3af7ffff
-3b9cffff7e439378
-600000004bffec4d
-3ad6ffff2f9f0001
-3be00001419e0028
-7c0004ac4bfffc78
-7c0004ac7e604f2a
-7c0004ac7d40472a
-4bffffb47ce04f2a
-3860000138210140
-0000000048000cd4
-0000128001000000
-384291b83c4c0001
-3c62ffff7c0802a6
-48000c9138637f70
-3f60c800f821ff71
-637b10003be00000
-4bffebd17b7b0020
-7c0004ac60000000
-3f40c8007fe0df2a
-7b5a0020635a1004
-7fe0d72a7c0004ac
-4bfff78d3fa0c800
-7bbd002063bd080c
-7fe0ef2a7c0004ac
-63de08103fc0c800
-7c0004ac7bde0020
-3f80c8007fe0f72a
-639c08003920000c
+7fc3f3787fe04f2a
+4bfffd0d22de0001
+3ee2ffff213e0003
+7ed607b479350020
+3be000007d2907b4
+3af77f483b010070
+7ebdaa147f3db214
+4bfffd757f5d4a14
+3b8000003860000f
+3b6000014bfffca9
+7f04c3787b890fa4
+4bfffde17c77482a
+895900107d39e0ae
+409e00487f895000
+895a00107d35e0ae
+409e00387f895000
+2bbc00103b9c0004
+2fbb0000409effc8
+7d3c07b4393f0001
+2f890020409e0028
+7fc3f378419e001c
+4bfffcb97f9fe378
+3b6000004bffff8c
+7f9fe3784bffffc8
+7fc3f37838bf0001
+4bfffc997cbc07b4
+7eddb214213e0003
+7d2907b479350020
+7fbd4a147ebdaa14
+3860000f4bfffcc9
+4bfffbfd3b600000
+7b690fa43b400001
+7c77482a7f04c378
+7d39d8ae4bfffd35
+7f89500089560010
+7d35d8ae409e0044
+7f895000895d0010
+3b7b0004409e0034
+409effc82bbb0010
+419e00282fba0000
+2f89001f393c0001
+419d00187d3c07b4
+4bfffc117fc3f378
+3b4000004bffff90
+2f9f00204bffffcc
+7fbd0e707fbfe214
+3c62ffff409e006c
+4bfff4b938637f30
+7fc3f37860000000
+4bfffb8d3be00000
+419c00707f9fe800
+392000003d40c800
+794a0020614a080c
+7d20572a7c0004ac
+614a08103d40c800
+7c0004ac794a0020
+3860000b7d20572a
+3860000f4bfffaed
+382100e04bfffb21
+7cbfe05048001554
+7ca50e703c62ffff
+7fa4eb787ca50194
+7ca507b438637f38
+600000004bfff43d
+7fc3f3784bffff84
+4bfffb593bff0001
+4bffff7c7fff07b4
+0100000000000000
+3c4c000100000b80
+7c0802a6384299cc
+614a08003d40c800
+794a00203920000e
+f821ffa1f8010010
+7d20572a7c0004ac
+38637ff03c62ffff
+600000004bfff3dd
+e801001038210060
+4e8000207c0803a6
+0100000000000000
+3c4c000100000080
+7c0802a638429974
+614a08003d40c800
+794a002039200001
+f821ffa1f8010010
+7d20572a7c0004ac
+38637f683c62ffff
+600000004bfff385
+e801001038210060
+4e8000207c0803a6
+0100000000000000
+3c4c000100000080
+7c0802a63842991c
+7d0903a639000080
+3d2040003d40aaaa
+48001409614aaaaa
+91490000f821ff81
+4200fff839290004
+600000004bfff3a1
+3d00aaaa39400080
+3d2040007d4903a6
+6108aaaa3be00000
+7f8a400081490000
+3bff0001419e000c
+392900047fff07b4
+390000804200ffe8
+7d0903a63d405555
+614a55553d204000
+3929000491490000
+4bfff3454200fff8
+3940008060000000
+7d4903a63d005555
+610855553d204000
+7f8a400081490000
+3bff0001419e000c
+392900047fff07b4
+2fbf00004200ffe8
+3c62ffff419e001c
+7fe4fb7838a00100
+4bfff28138637e68
+3d00000860000000
+7d0903a63ce08020
+3d40400060e70003
+78e7002039200001
+792907e07928f842
+394a00047d2900d0
+7d2942787d293838
+4200ffe4912afffc
+600000004bfff2b1
+3ce080203d000008
+60e700037d0903a6
+3ba000003d404000
+78e7002039200001
+792907e07928f842
+7d2938387d2900d0
+810a00007d294278
+419e000c7f884840
+7fbd07b43bbd0001
+4200ffd4394a0004
+419e001c2fbd0000
+3ca000083c62ffff
+38637e907fa4eb78
+600000004bfff1cd
+3940000039202000
+3d2a10007d2903a6
+3929000279480020
+79291764394a0001
+4200ffe891090000
+600000004bfff211
+3940000039202000
+3bc000007d2903a6
+792917643d2a1000
+5529043e81290008
+419e000c7f895000
+7fde07b43bde0001
+4200ffdc394a0001
+419e001c2fbe0000
+38a020003c62ffff
+38637eb87fc4f378
+600000004bfff145
+386000007fffea14
+2f9f00007ffff214
+3c62ffff409e00a4
+4bfff12138637ee0
+7c9602a660000000
+788400203d400004
+392000007d4903a6
+794a1f243d490800
+39290001f92a0000
+7ff602a64200fff0
+3fe064007c9f2050
+4bfff1557fff2396
+7bff002060000000
+3d0000047d3602a6
+7d0903a679290020
+e90a00003d404000
+4200fff8394a0008
+7d2548507cb602a6
+7ca54b963ca06400
+7fe4fb783c62ffff
+78a5006038637ef0
+600000004bfff095
+3821008038600001
+000000004800119c
+0000038001000000
+384296303c4c0001
+480010f57c0802a6
+3fe0c800f821fec1
+63ff00143bc00001
+4bfffc497bff0020
+4bfff72d38600000
+7fc0ff2a7c0004ac
+639c00203f80c800
 7c0004ac7b9c0020
-386000007d20e72a
-4bfff2096063c350
-7fe0ef2a7c0004ac
-7fe0f72a7c0004ac
-7c0004ac3920000e
-386027107d20e72a
-392002004bfff1e5
-7d20ef2a7c0004ac
+3ba000007fc0e72a
+7fa0ff2a7c0004ac
+4bfff6fd38600001
 7c0004ac39200002
-3860000f7d20f72a
-7c0004ac4bfff189
-392000037fe0ef2a
+7c0004ac7d20ff2a
+7c0004ac7fc0e72a
+3c62ffff7fa0ff2a
+38637fa83b810070
+4bffefe93e02ffff
+3d22ffff60000000
+3de2fffffb810080
+3dc2ffff39297fb8
+3ae100633e42ffff
+3ac10061f9210098
+3a107f483be00000
+39ce7fd039ef7fc8
+392100643a527f88
+3e80c8003b200001
+f92100883ea0c800
+7f39f83039210068
+62b508106294080c
+3bc000007b330020
+3b000000f9210090
+7a9400203ba00000
+480000547ab50020
+2f9d000f7fbeeb78
+3d20c800419e029c
+7929002061290014
+7e604f2a7c0004ac
+394000013d00c800
+7908002061080024
+7d40472a7c0004ac
+7c0004ac39400000
+3bbd00017d404f2a
+7fbd07b47f78db78
+3900000439410060
+7d5a53783920002a
+38c0000038e00004
+3ca080207ce903a6
+60a500037927f842
+7d2900d0792907e0
+7d29283878a50020
+78e900207d273a78
+38c600017cea31ae
+3908ffff4200ffd4
+79080021394a0004
+3b6000004082ffb8
+7f60a72a7c0004ac
+7f60af2a7c0004ac
+4bfff52138600009
+4bfff5553860000f
+7f44d3783c60c800
+7863002060630814
+e88100884bfff641
+6063082c3c60c800
+4bfff62d78630020
+3c60c800e8810090
+7863002060630844
+3c60c8004bfff619
+6063085c3881006c
+4bfff60578630020
+612908543d20c800
+7c0004ac79290020
+3d20c8007f604f2a
+7929002061290858
+7f604f2a7c0004ac
+392000173d40c800
+794a0020614a084c
+7d20572a7c0004ac
+392000013d40c800
+794a0020614a0850
+7d20572a7c0004ac
+6129083c3d20c800
+7c0004ac79290020
+3d20c8007f604f2a
+7929002061290840
+7f604f2a7c0004ac
+7fa5eb78e8610098
+3b4000207fe4fb78
+4bffedb13b600000
+7fe3fb7860000000
+4bfff51d4bfff489
+3a2000013860000f
+394000004bfff451
+e881008079480fa4
+7c70402af94100a0
+e94100a04bfff585
+7d1650ae88fc0001
+409e00a07f883800
+88fc00037d1750ae
+409e00907f883800
+2baa0010394a0004
+7e248b78409effc0
+4bffed417de37b78
+3b5affff60000000
+4bfff4617fe3fb78
+7f7b8a147b5a0021
+4082ff807f7b07b4
+4bffed197dc37378
+3920000060000000
+7d20a72a7c0004ac
+7d20af2a7c0004ac
+4bfff3793860000b
+4bfff3ad3860000f
+4bfff5317fe3fb78
+4bffece17e439378
+7f98d80060000000
+7f1bc378419cfd70
+3a2000004bfffd6c
+3c62ffff4bffff70
+7fe4fb787fc5f378
+4bffecb138637fd8
+3d20c80060000000
+7929002061290014
+7f204f2a7c0004ac
+394000013d00c800
+7908002061080020
+7d40472a7c0004ac
+7c0004ac39400000
+7bde00207d404f2a
+38de00013d00c800
+7cc903a661080024
+7908002039400001
+4200003438e00000
+3af7ffff7fe3fb78
+7e4393784bfff48d
+4bffec393b9cffff
+2f9f000160000000
+419e00283ad6ffff
+4bfffc783be00001
+7e604f2a7c0004ac
+7d40472a7c0004ac
+7ce04f2a7c0004ac
+382101404bffffb4
+48000cd438600001
+0100000000000000
+3c4c000100001280
+7c0802a6384291a4
+38637f903c62ffff
+f821ff7148000c91
+3be000003f60c800
+7b7b0020637b1000
+600000004bffebbd
+7fe0df2a7c0004ac
+635a10043f40c800
+7c0004ac7b5a0020
+3fa0c8007fe0d72a
+63bd080c4bfff78d
+7c0004ac7bbd0020
+3fc0c8007fe0ef2a
+7bde002063de0810
+7fe0f72a7c0004ac
+3920000c3f80c800
+7b9c0020639c0800
+7d20e72a7c0004ac
+6063c35038600000
+7c0004ac4bfff209
+7c0004ac7fe0ef2a
+3920000e7fe0f72a
+7d20e72a7c0004ac
+4bfff1e538602710
+7c0004ac39200200
+392000027d20ef2a
 7d20f72a7c0004ac
-4bfff16d3860000f
-7c0004ac39200006
-3b8000017d20ef2a
-7f80f72a7c0004ac
-4bfff14d3860000f
-7c0004ac39200920
-7c0004ac7d20ef2a
-3860000f7fe0f72a
-386000c84bfff131
-392004004bfff165
+4bfff1893860000f
+7fe0ef2a7c0004ac
+7c0004ac39200003
+3860000f7d20f72a
+392000064bfff16d
+7d20ef2a7c0004ac
+7c0004ac3b800001
+3860000f7f80f72a
+392009204bfff14d
 7d20ef2a7c0004ac
 7fe0f72a7c0004ac
-4bfff10d38600003
-4bfff141386000c8
-4bfff6cd4bfffa15
-2c2300004bfff721
-7c0004ac4082001c
-7c0004ac7f80df2a
-382100907f80d72a
-7c0004ac48000b64
-386000017f80df2a
-000000004bffffec
-0000068001000000
-384290083c4c0001
-600000003d20c000
-7929002061292000
-3d20c000f9228048
-7929002061290020
-7d204eea7c0004ac
-792906003d40001c
-7d295392614a2000
-394a0018e9428048
-7c0004ac3929ffff
-4e8000207d2057ea
-0000000000000000
-3c4c000100000000
-6000000038428fa4
-39290010e9228048
-7d204eea7c0004ac
-4082ffe871290008
-e94280485469063e
+4bfff1313860000f
+4bfff165386000c8
+7c0004ac39200400
+7c0004ac7d20ef2a
+386000037fe0f72a
+386000c84bfff10d
+4bfffa154bfff141
+4bfff7214bfff6cd
+4082001c2c230000
+7f80df2a7c0004ac
+7f80d72a7c0004ac
+48000b6438210090
+7f80df2a7c0004ac
+4bffffec38600001
+0100000000000000
+3c4c000100000680
+3d20c00038428ff4
+6129200060000000
+f922806879290020
+612900203d20c000
+7c0004ac79290020
+3d40001c7d204eea
+614a200079290600
+e94280687d295392
+3929ffff394a0018
 7d2057ea7c0004ac
 000000004e800020
 0000000000000000
-38428f603c4c0001
-fbc1fff07c0802a6
-3bc3fffffbe1fff8
-f821ffd1f8010010
-2fbf00008ffe0001
-38210030409e0010
-48000a8c38600000
-409e000c2b9f000a
-4bffff813860000d
-4bffff797fe3fb78
-000000004bffffd0
-0000028001000000
-408200082c240000
-2b8500243881fff0
-38600000f8640000
-3cc000014d9d0020
-60c6260078c683e4
-89490000e9240000
-419d002c2b8a0020
-70e800017cc75436
-2fa5000040820014
-38a0000a409e0054
-392900014800005c
-4bffffccf9240000
-409e00382fa50000
-38a0000a2b8a0030
-89490001409e003c
-409e00302f8a0078
-38a0001089490001
-409e00202f8a0078
-f924000039290002
-2f85001048000014
-2b8a0030409e000c
-38600000419effd8
-38c9ffd048000030
-2b8a000954ca063e
-7cc90734419d0034
-4c9c00207f892800
-7c6519d238e70001
-7c691a14f8e40000
-89270000e8e40000
-409effc82fa90000
-3949ff9f4e800020
+38428f903c4c0001
+e922806860000000
+7c0004ac39290010
+712900087d204eea
+5469063e4082ffe8
+7c0004ace9428068
+4e8000207d2057ea
+0000000000000000
+3c4c000100000000
+7c0802a638428f4c
+fbe1fff8fbc1fff0
+f80100103bc3ffff
+8ffe0001f821ffd1
+409e00102fbf0000
+3860000038210030
+2b9f000a48000a8c
+3860000d409e000c
+7fe3fb784bffff81
+4bffffd04bffff79
+0100000000000000
+2c24000000000280
+3881fff040820008
+f86400002b850024
+4d9d002038600000
+78c683e43cc00001
+e924000060c62600
+2b8a002089490000
+7cc75436419d002c
+4082001470e80001
+409e00542fa50000
+4800005c38a0000a
+f924000039290001
+2fa500004bffffcc
+2b8a0030409e0038
+409e003c38a0000a
+2f8a007889490001
+89490001409e0030
+2f8a007838a00010
+39290002409e0020
+48000014f9240000
+409e000c2f850010
+419effd82b8a0030
+4800003038600000
+54ca063e38c9ffd0
+419d00342b8a0009
+7f8928007cc90734
+38e700014c9c0020
+f8e400007c6519d2
+e8e400007c691a14
+2fa9000089270000
+4e800020409effc8
+554a063e3949ff9f
+419d00102b8a0019
+7d2907343929ffa9
+3949ffbf4bffffbc
 2b8a0019554a063e
-3929ffa9419d0010
-4bffffbc7d290734
-554a063e3949ffbf
-4d9d00202b8a0019
-4bffffe43929ffc9
-0000000000000000
-3920000000000000
-2f8a00007d4348ae
-7d234b78409e000c
-392900014e800020
-000000004bffffe8
-0000000000000000
-3900000078aae8c2
-7d2903a6392a0001
-78a9e8c242000030
-1d29fff8792a1f24
-7c8452147d035214
-392000007ca92a14
-7d4903a639450001
-4e80002042000018
-7d23412a7d24402a
-4bffffc439080008
-7d4849ae7d4448ae
-4bffffdc39290001
-0000000000000000
-3923ff9f00000000
-4d9d00202b890019
-7c6307b43863ffe0
-000000004e800020
+3929ffc94d9d0020
+000000004bffffe4
+0000000000000000
+7d4348ae39200000
+409e000c2f8a0000
+4e8000207d234b78
+4bffffe839290001
+0000000000000000
+78aae8c200000000
+392a000139000000
+420000307d2903a6
+792a1f2478a9e8c2
+7d0352141d29fff8
+7ca92a147c845214
+3945000139200000
+420000187d4903a6
+7d24402a4e800020
+390800087d23412a
+7d4448ae4bffffc4
+392900017d4849ae
+000000004bffffdc
+0000000000000000
+2b8900193923ff9f
+3863ffe04d9d0020
+4e8000207c6307b4
 0000000000000000
-38428d103c4c0001
-3d2037367c0802a6
-612935347d908026
-65293332792907c6
-6129313091810008
-f821ffa1480007d9
-7cde33787c7d1b78
-f92100203be00000
-612964633d206665
-65296261792907c6
-f921002861293938
-2fa900007ca92b78
-2fbf0000409e0080
-3be00001409e0008
-386000007fbf2040
-2e270000419d0058
-7f65f3923b9fffff
-7ca928507d3bf1d2
-886500207ca12a14
-4bffff4141920010
-5463063e60000000
-e93d00002fbb0000
-7c69e1ae7f65db78
-409effc83b9cffff
-38600001e93d0000
-fbfd00007fe9fa14
-8181000838210060
-480007747d908120
-409e00142b9e0010
-3bff00017929e102
-4bffff687fff07b4
-4bfffff07d29f392
-0300000000000000
-3c4c000100000580
-7c0802a638428c04
-f821ffb1480006e9
-7c7f1b78eb630000
-7cbd2b787c9c2378
-7fa3eb783bc00000
-600000004bfffe0d
-409d00147fa3f040
-7d3b5050e95f0000
-419c00107fa9e040
-3860000138210050
-7d3df0ae480006f0
-992a00003bde0001
-39290001e93f0000
-4bffffb8f93f0000
+3c4c000100000000
+7c0802a638428cfc
+7d9080263d203736
+792907c661293534
+9181000865293332
+480007d961293130
+7c7d1b78f821ffa1
+3be000007cde3378
+3d206665f9210020
+792907c661296463
+6129393865296261
+7ca92b78f9210028
+409e00802fa90000
+409e00082fbf0000
+7fbf20403be00001
+419d005838600000
+3b9fffff2e270000
+7d3bf1d27f65f392
+7ca12a147ca92850
+4192001088650020
+600000004bffff41
+2fbb00005463063e
+7f65db78e93d0000
+3b9cffff7c69e1ae
+e93d0000409effc8
+7fe9fa1438600001
+38210060fbfd0000
+7d90812081810008
+2b9e001048000774
+7929e102409e0014
+7fff07b43bff0001
+7d29f3924bffff68
+000000004bfffff0
+0000058003000000
+38428bf03c4c0001
+480006e97c0802a6
+eb630000f821ffb1
+7c9c23787c7f1b78
+3bc000007cbd2b78
+4bfffe0d7fa3eb78
+7fa3f04060000000
+e95f0000409d0014
+7fa9e0407d3b5050
+38210050419c0010
+480006f038600001
+3bde00017d3df0ae
+e93f0000992a0000
+f93f000039290001
+000000004bffffb8
+0000058001000000
+38428b703c4c0001
+480006617c0802a6
+7c7d1b78f821ffa1
+7ca32b787c9b2378
+38a0000a38800000
+eb5d00007cde3378
+7d1943787cfc3b78
+4bfffc497d3f4b78
+3940000060000000
+2fbe00007c6307b4
+2faa0000409e006c
+39400001409e0008
+7f8348007d3f5214
+409d00447d2a07b4
+2f8300007c6a1850
+3929000178690020
+3d408000419c0010
+409e00087f835000
+2c29000139200001
+418200143929ffff
+7d5a3850e8fd0000
+419c00307faad840
+3860000038210060
+2b9c001048000604
+7bdee102409e0014
+7d4a07b4394a0001
+7fdee3924bffff7c
+9b2700004bfffff0
+394a0001e95d0000
+4bffffa8f95d0000
 0100000000000000
-3c4c000100000580
-7c0802a638428b84
-f821ffa148000661
-7c9b23787c7d1b78
-388000007ca32b78
-7cde337838a0000a
-7cfc3b78eb5d0000
-7d3f4b787d194378
-600000004bfffc49
-7c6307b439400000
-409e006c2fbe0000
-409e00082faa0000
-7d3f521439400001
-7d2a07b47f834800
-7c6a1850409d0044
-786900202f830000
-419c001039290001
-7f8350003d408000
-39200001409e0008
-3929ffff2c290001
-e8fd000041820014
-7faad8407d5a3850
-38210060419c0030
-4800060438600000
-409e00142b9c0010
-394a00017bdee102
-4bffff7c7d4a07b4
-4bfffff07fdee392
-e95d00009b270000
-f95d0000394a0001
-000000004bffffa8
-0000078001000000
-38428a883c4c0001
-480005397c0802a6
-7c741b79f821fed1
-38600000f8610060
-2fa4000041820068
-39210040419e0060
-3ac4ffff3e42ffff
-f92100703b410020
-3ae0000060000000
-3a527ff839228040
-f92100783ba10060
-ebc1006089250000
+3c4c000100000780
+7c0802a638428a74
+f821fed148000539
+f86100607c741b79
+4182006838600000
+419e00602fa40000
+6000000039210040
+3b4100203ac4ffff
+60000000f9210070
+392280603ae00000
+3ba100603a428018
+89250000f9210078
+2fa90000ebc10060
+7ff4f050419e0010
+419c00207fbfb040
+993e000039200000
+7e941850e8610060
+382101307e8307b4
+2b89002548000508
+409e048839450001
+8925000038e00000
+f8a10068e9010070
+7d2741ae7cea07b4
+8d25000139070001
+2b8900647d0807b4
+2b890069419e0058
+2b890075419e0050
+2b890078419e0048
+2b890058419e0040
+2b890070419e0038
+2b890063419e0030
+2b890073419e0028
+2b890025419e0020
+2b89004f419e0018
+2b89006f419e0010
+409eff8838e70001
+2b890025394a0002
+7d1a42147d4a07b4
+992800207d5a5214
+409e00209aea0020
+f9210060393e0001
+993e000039200025
+38a90002e9210068
+892100414bffff04
+3a2600087fffb050
+3a600030eb660000
+3929ffd23b010042
+4082039c712900fd
+3b2000043aa00000
+3a0000013b800000
+7ddb00d039e0002d
+2b89006c48000108
+88f8000138d80001
+419d0118419e033c
+419e02402b890063
+2b89004f419d0038
+2b890058419e01e8
+3949ffd0419e0188
+2b8a0009554a063e
+395c0001419d00c4
+993c00207f81e214
+480000b0795c0020
+419e03042b890068
+419e000c2b890069
+409effc82b890064
+7d41e2142b890075
+7f6adb789aea0020
+57291838419e0034
+7e0948363929ffff
+418200207f694839
+e921006099e80000
+f921006039290001
+7d52482a7b291f24
+e88100607dca5038
+38e0000a7d465378
+7f45d378f9410080
+7e689b7839200000
+7c9e20507fa3eb78
+4bfffc9d7c84f850
+e9410080e8810060
+38c0000a7ea7ab78
+7d4553787c9e2050
+7fa3eb787c84f850
+3b1800014bfffaed
+e901006089380000
 419e00102fa90000
-7fbfb0407ff4f050
-39200000419c0020
-e8610060993e0000
-7e8307b47e941850
-4800050838210130
-394500012b890025
-38e00000409e0488
-e901007089250000
-7cea07b4f8a10068
-390700017d2741ae
-7d0807b48d250001
-419e00582b890064
-419e00502b890069
-419e00482b890075
-419e00402b890078
-419e00382b890058
-419e00302b890070
-419e00282b890063
-419e00202b890073
-419e00182b890025
-419e00102b89004f
-38e700012b89006f
-394a0002409eff88
-7d4a07b42b890025
-7d5a52147d1a4214
-9aea002099280020
-393e0001409e0020
-39200025f9210060
-e9210068993e0000
-4bffff0438a90002
-7fffb05089210041
-eb6600003a260008
-3b0100423a600030
-712900fd3929ffd2
-3aa000004082039c
-3b8000003b200004
-39e0002d3a000001
-480001087ddb00d0
-38d800012b89006c
-419e033c88f80001
-2b890063419d0118
-419d0038419e0240
-419e01e82b89004f
-419e01882b890058
-554a063e3949ffd0
-419d00c42b8a0009
-7f81e214395c0001
-795c0020993c0020
-2b890068480000b0
-2b890069419e0304
-2b890064419e000c
-2b890075409effc8
-9aea00207d41e214
-419e00347f6adb78
-3929ffff57291838
-7f6948397e094836
-99e8000041820020
-39290001e9210060
-7b291f24f9210060
-7dca50387d52482a
-7d465378e8810060
-f941008038e0000a
-392000007f45d378
-7fa3eb787e689b78
-7c84f8507c9e2050
-e88100604bfffc9d
-7ea7ab78e9410080
-7c9e205038c0000a
-7c84f8507d455378
-4bfffaed7fa3eb78
-893800003b180001
-2fa90000e9010060
-7d5e4050419e0010
-419dfee47fbf5040
-4bfffe907e268b78
-419e016c2b890073
-2b89006f419d006c
-2b890070419e00d4
-7d21e214409efef0
-7f66db7838e00010
-9ae900207c8af850
-3920000239000020
-7fa3eb787f45d378
-e88100604bfffc0d
-7fa3eb78e8a10078
-7c84f8507c9e2050
-e88100604bfffb75
-38c000107ea7ab78
-7c9e20507f65db78
-2b8900784bffff5c
-2b89007a419e0018
-2b890075419e01cc
-3aa000014bfffeb8
+7fbf50407d5e4050
+7e268b78419dfee4
+2b8900734bfffe90
+419d006c419e016c
+419e00d42b89006f
+409efef02b890070
 38e000107d21e214
-7e689b787c8af850
-7b291f249ae90020
-7fa3eb787f45d378
-392000007d72482a
-7d665b787f6b5838
-4bfffb89f9610080
+7c8af8507f66db78
+390000209ae90020
+7f45d37839200002
+4bfffc0d7fa3eb78
+e8a10078e8810060
+7c9e20507fa3eb78
+4bfffb757c84f850
 7ea7ab78e8810060
-7c9e205038c00010
-7d655b78e9610080
-7d21e2144bfffeec
-7c8af85038e00008
+7f65db7838c00010
+4bffff5c7c9e2050
+419e00182b890078
+419e01cc2b89007a
+4bfffeb82b890075
+7d21e2143aa00001
+7c8af85038e00010
 9ae900207e689b78
 7f45d3787b291f24
 7d72482a7fa3eb78
 7f6b583839200000
 f96100807d665b78
-e88100604bfffb35
-38c000087ea7ab78
-4bffffac7c9e2050
-390000207d21e214
-38c0000138e0000a
-7f45d3789ae90020
-7c8af85039200000
-4bfffaf97fa3eb78
-9b690000e9210060
-39290001e9210060
-4bfffe6cf9210060
-38a0000a7d21e214
-f9410088f9010090
-7f43d37838800000
-4bfff73d9ae90020
-f861008060000000
-4bfff8617f63db78
-e921008060000000
-409d00407fa91840
-e94100887c634850
-2fa30000e9010090
-7d4af85039230001
-39200001409e0008
-e8c100602c290001
-418200103929ffff
-7faa38407ce83050
-e8810060419d0020
-7fa3eb787f65db78
-7c84f8507c9e2050
-4bfffdd44bfff9cd
-98e6000038e00020
-38e70001e8e10060
-4bffffb4f8e10060
-3b2000082b87006c
-7cd83378409efdb0
-2b8700684bfffda8
-409efd9c3b200002
-3b2000017cd83378
-3b2000084bfffd90
-3a6000204bfffd88
-4bfffc603b010041
-7d455378993e0000
-39290001e9210060
-4bfffb24f9210060
-0100000000000000
-f9c1ff7000001280
-fa01ff80f9e1ff78
-fa41ff90fa21ff88
-fa81ffa0fa61ff98
-fac1ffb0faa1ffa8
-fb01ffc0fae1ffb8
-fb41ffd0fb21ffc8
-fb81ffe0fb61ffd8
-fbc1fff0fba1ffe8
-f8010010fbe1fff8
-e9c1ff704e800020
-ea01ff80e9e1ff78
-ea41ff90ea21ff88
-ea81ffa0ea61ff98
-eac1ffb0eaa1ffa8
-eb01ffc0eae1ffb8
-eb41ffd0eb21ffc8
-eb81ffe0eb61ffd8
-eba1ffe8e8010010
-ebc1fff07c0803a6
-4e800020ebe1fff8
-e8010010ebc1fff0
-7c0803a6ebe1fff8
-000000004e800020
+e88100604bfffb89
+38c000107ea7ab78
+e96100807c9e2050
+4bfffeec7d655b78
+38e000087d21e214
+7e689b787c8af850
+7b291f249ae90020
+7fa3eb787f45d378
+392000007d72482a
+7d665b787f6b5838
+4bfffb35f9610080
+7ea7ab78e8810060
+7c9e205038c00008
+7d21e2144bffffac
+38e0000a39000020
+9ae9002038c00001
+392000007f45d378
+7fa3eb787c8af850
+e92100604bfffaf9
+e92100609b690000
+f921006039290001
+7d21e2144bfffe6c
+f901009038a0000a
+38800000f9410088
+9ae900207f43d378
+600000004bfff73d
+7f63db78f8610080
+600000004bfff861
+7fa91840e9210080
+7c634850409d0040
+e9010090e9410088
+392300012fa30000
+409e00087d4af850
+2c29000139200001
+3929ffffe8c10060
+7ce8305041820010
+419d00207faa3840
+7f65db78e8810060
+7c9e20507fa3eb78
+4bfff9cd7c84f850
+38e000204bfffdd4
+e8e1006098e60000
+f8e1006038e70001
+2b87006c4bffffb4
+409efdb03b200008
+4bfffda87cd83378
+3b2000022b870068
+7cd83378409efd9c
+4bfffd903b200001
+4bfffd883b200008
+3b0100413a600020
+993e00004bfffc60
+e92100607d455378
+f921006039290001
+000000004bfffb24
+0000128001000000
+f9e1ff78f9c1ff70
+fa21ff88fa01ff80
+fa61ff98fa41ff90
+faa1ffa8fa81ffa0
+fae1ffb8fac1ffb0
+fb21ffc8fb01ffc0
+fb61ffd8fb41ffd0
+fba1ffe8fb81ffe0
+fbe1fff8fbc1fff0
+4e800020f8010010
+e9e1ff78e9c1ff70
+ea21ff88ea01ff80
+ea61ff98ea41ff90
+eaa1ffa8ea81ffa0
+eae1ffb8eac1ffb0
+eb21ffc8eb01ffc0
+eb61ffd8eb41ffd0
+e8010010eb81ffe0
+7c0803a6eba1ffe8
+ebe1fff8ebc1fff0
+ebc1fff04e800020
+ebe1fff8e8010010
+4e8000207c0803a6
 6d6f636c65570a0a
 63694d206f742065
 2120747461776f72
@@ -1597,6 +1599,8 @@ e8010010ebc1fff0
 000000204d415242
 4853414c46495053
 0000000000000020
+54454e5245485445
+0000000000000020
 2020202020202020
 203a4d4152422020
 000a424b20646c25
index cd9dd30ecdae6da49be55d88f4433366fcd6ea53..f5bcd286e1b7fc360334e324fbaecfef1e70896f 100644 (file)
@@ -527,11 +527,11 @@ f88100d83be10020
 f8e100f038c100d8
 f90100f87fe3fb78
 f9410108f9210100
-6000000048001119
+600000004800112d
 7fe3fb787c7e1b78
-6000000048000c31
+6000000048000c45
 7fc3f378382100b0
-00000000480016d8
+00000000480016ec
 0000028001000000
 000000004e800020
 0000000000000000
@@ -540,731 +540,733 @@ f9410108f9210100
 0000000000000000
 38429a203c4c0001
 7d8000267c0802a6
-9181000848001615
-48000b25f821fed1
+9181000848001629
+48000b39f821fed1
 3c62ffff60000000
-4bffff3938637c98
+4bffff3938637ca8
 548400023880ffff
 7c8026ea7c0004ac
 3fe0c0003c62ffff
-63ff000838637cb8
+63ff000838637cc8
 3c62ffff4bffff15
-38637cd87bff0020
+38637ce87bff0020
 7c0004ac4bffff05
 73e900017fe0feea
 3c62ffff41820010
-4bfffee938637cf0
+4bfffee938637d00
 4e00000073e90002
 3c62ffff41820010
-4bfffed138637cf8
+4bfffed138637d08
 4d80000073e90004
 3c62ffff41820010
-4bfffeb938637d00
+4bfffeb938637d10
 4d00000073e90008
 3c62ffff41820010
-4bfffea138637d08
-3b62804060000000
-4bfffe917f63db78
-3c80c000418e0028
-7884002060840010
-7c8026ea7c0004ac
-7884b5823c62ffff
-4bfffe6938637d18
-3c80c0004192004c
-7884002060840018
-7c8026ea7c0004ac
-788460223c62ffff
-4bfffe4138637d30
-608400303c80c000
+4bfffea138637d18
+4182001073e90010
+38637d283c62ffff
+600000004bfffe8d
+7f63db783b628060
+418e00284bfffe7d
+608400103c80c000
 7c0004ac78840020
 3c62ffff7c8026ea
-38637d487884b282
-3d20c0004bfffe1d
-7929002061290020
-7d204eea7c0004ac
-792906003c80000f
-3c62ffff60844240
-38637d607c892392
-418a02584bfffded
-63bd00383fa0c000
-7c0004ac7bbd0020
-3d40c0007fa0eeea
-614a600439200002
-7c0004ac794a0020
-3fe0c0007d2057aa
-63ff60003920ff9f
-7c0004ac7bff0020
-7c0004ac7d20ffaa
-579c063e7f80feaa
-7fc0feaa7c0004ac
-7c0004ac57de063e
-4bfffd3d7fe0feaa
-3c62ffff57ff063e
-7fc5f3787fe6fb78
-38637d807f84e378
-7f89f3784bfffd65
-2f8900007d29fb78
-7f89f038419e0164
-2f8900ff7d29f838
-2b9c0001419e0154
-2b9e0002409e0374
-2b9e0020419e000c
-3bffffe8409e0134
-2b9f000157ff063e
-3fe0c000419d0124
-63ff600039200035
-7c0004ac7bff0020
-3fc0c0007d20ffaa
-63de60043b400002
-7c0004ac7bde0020
-7c0004ac7f40f7aa
-7c0004ac7d20ffaa
-4bfffc957f80feaa
-3c62ffff579c063e
-38637da07f84e378
-738900024bfffcc5
-3c62ffff40820090
-4bfffcb138637dc0
-7f40f7aa7c0004ac
-7c0004ac39200006
-4bfffc557d20ffaa
+38637d387884b582
+4192004c4bfffe55
+608400183c80c000
+7c0004ac78840020
+3c62ffff7c8026ea
+38637d5078846022
+3c80c0004bfffe2d
+7884002060840030
+7c8026ea7c0004ac
+7884b2823c62ffff
+4bfffe0938637d68
+612900203d20c000
+7c0004ac79290020
+3c80000f7d204eea
+6084424079290600
+7c8923923c62ffff
+4bfffdd938637d80
+3fa0c000418a0258
+7bbd002063bd0038
+7fa0eeea7c0004ac
+392000023d40c000
+794a0020614a6004
+7d2057aa7c0004ac
+3920ff9f3fe0c000
+7bff002063ff6000
+7d20ffaa7c0004ac
+7f80feaa7c0004ac
+7c0004ac579c063e
+57de063e7fc0feaa
+7fe0feaa7c0004ac
+57ff063e4bfffd29
+7fe6fb783c62ffff
+7f84e3787fc5f378
+4bfffd5138637da0
+7d29fb787f89f378
+419e01642f890000
+7d29f8387f89f038
+419e01542f8900ff
+409e03742b9c0001
+419e000c2b9e0002
+409e01342b9e0020
+57ff063e3bffffe8
+419d01242b9f0001
+392000353fe0c000
+7bff002063ff6000
+7d20ffaa7c0004ac
+3b4000023fc0c000
+7bde002063de6004
 7f40f7aa7c0004ac
-7c0004ac39200001
-392000007d20ffaa
 7d20ffaa7c0004ac
-7c0004ac639c0002
-7c0004ac7f80ffaa
-4bfffc1d7d20f7aa
-3b4000053b200002
-7f20f7aa7c0004ac
-7f40ffaa7c0004ac
 7f80feaa7c0004ac
-4bfffbf5579c063e
-4082ffdc73890001
-38637dd83c62ffff
-3d40c0004bfffc25
-794a0020614a6008
-7d20562a7c0004ac
-652920005529021e
-7c0004ac61291f6b
-7f63db787d20572a
-7bbd00204bfffbf5
-7fa4eb783c62ffff
-4bfffbe138637de8
-7f63db783be00001
-419200284bfffbd5
-3c82ffff3ca2ffff
-38a57e083c62ffff
-38637e2038847e18
-480006054bfffbb5
-418e002460000000
-38637e503c62ffff
-386000004bfffb9d
-3be0000048000144
-4bffffb03ba00000
-419e00842fbf0000
-38637e683c62ffff
-3c9df0004bfffb75
-7884002038a00040
-4800099d38610070
-e921007060000000
-614a464c3d400002
-79290600794a83e4
-7fa95000614a457f
-3c62ffff419e0080
-4bfffb3138637e80
-8941007688610077
-8901007489210075
-88c1007288e10073
-8881007088a10071
-3c62fffff8610060
-4bfffb0138637f00
-38637f303c62ffff
-3c80ff004bfffaf5
-6084400038a0ffff
-7884002054a50422
-480009153c604000
-3c62ffff60000000
-4bfffac938637f50
-4bffff284bfffb49
-2f89000189210075
-a1210082409e0010
-419e00102f890015
-38637ea03c62ffff
-ebe100904bffff6c
-3bc000003f02ffff
-3b187eb83b2100b0
-7bff00207fffea14
-7f89f040a12100a8
-80810088419d0034
-38637ee03c62ffff
-4bfffae54bfffa65
-2fa3ffffe8610088
-38210130419eff58
-7d83812081810008
-3c9ff00048001154
-7884002038a00038
-4800086d7f23cb78
-812100b060000000
-409e004c2f890001
-eb6100c0eb4100d0
-7fc4f378eb8100b8
-7f66db787f03c378
-3f9cf0007b450020
-7c9de2144bfff9fd
-788400207b450020
-480008257f63db78
-a12100a660000000
-7bff00207fe9fa14
-7bde00203bde0001
-2b9c00204bffff50
-2b9e00ba409efdcc
-2b9f0018409efdc4
-3c62ffff409efdbc
-4bfff9a938637dd0
-000000004bfffd78
-0000088003000000
-612908043d20c800
-7c0004ac79290020
-3d40c8007c604f2a
-614a080839200001
+579c063e4bfffc81
+7f84e3783c62ffff
+4bfffcb138637dc0
+4082009073890002
+38637de03c62ffff
+7c0004ac4bfffc9d
+392000067f40f7aa
+7d20ffaa7c0004ac
+7c0004ac4bfffc41
+392000017f40f7aa
+7d20ffaa7c0004ac
+7c0004ac39200000
+639c00027d20ffaa
+7f80ffaa7c0004ac
+7d20f7aa7c0004ac
+3b2000024bfffc09
+7c0004ac3b400005
+7c0004ac7f20f7aa
+7c0004ac7f40ffaa
+579c063e7f80feaa
+738900014bfffbe1
+3c62ffff4082ffdc
+4bfffc1138637df8
+614a60083d40c000
 7c0004ac794a0020
-4e8000207d20572a
-0000000000000000
-3c4c000100000000
-7c0802a638429414
-614a08003d40c800
-794a00203920000e
-f821ffa1f8010010
+5529021e7d20562a
+61291f6b65292000
 7d20572a7c0004ac
-3862806060000000
-600000004bfff925
-e801001038210060
-4e8000207c0803a6
-0100000000000000
-3c4c000100000080
-7c0802a6384293bc
-614a08003d40c800
-794a002039200001
-f821ffa1f8010010
+4bfffbe17f63db78
+3c62ffff7bbd0020
+38637e087fa4eb78
+3be000014bfffbcd
+4bfffbc17f63db78
+3ca2ffff41920028
+3c62ffff3c82ffff
+38847e3838a57e28
+4bfffba138637e40
+6000000048000605
+3c62ffff418e0024
+4bfffb8938637e70
+4800014438600000
+3ba000003be00000
+2fbf00004bffffb0
+3c62ffff419e0084
+4bfffb6138637e88
+38a000403c9df000
+3861007078840020
+600000004800099d
+3d400002e9210070
+794a83e4614a464c
+614a457f79290600
+419e00807fa95000
+38637ea03c62ffff
+886100774bfffb1d
+8921007589410076
+88e1007389010074
+88a1007188c10072
+f861006088810070
+38637f203c62ffff
+3c62ffff4bfffaed
+4bfffae138637f50
+38a0ffff3c80ff00
+54a5042260844000
+3c60400078840020
+6000000048000915
+38637f703c62ffff
+4bfffb354bfffab5
+892100754bffff28
+409e00102f890001
+2f890015a1210082
+3c62ffff419e0010
+4bffff6c38637ec0
+3f02ffffebe10090
+3b2100b03bc00000
+7fffea143b187ed8
+a12100a87bff0020
+419d00347f89f040
+3c62ffff80810088
+4bfffa5138637f00
+e86100884bfffad1
+419eff582fa3ffff
+8181000838210130
+480011547d838120
+38a000383c9ff000
+7f23cb7878840020
+600000004800086d
+2f890001812100b0
+eb4100d0409e004c
+eb8100b8eb6100c0
+7f03c3787fc4f378
+7b4500207f66db78
+4bfff9e93f9cf000
+7b4500207c9de214
+7f63db7878840020
+6000000048000825
+7fe9fa14a12100a6
+3bde00017bff0020
+4bffff507bde0020
+409efdcc2b9c0020
+409efdc42b9e00ba
+409efdbc2b9f0018
+38637df03c62ffff
+4bfffd784bfff995
+0300000000000000
+3d20c80000000880
+7929002061290804
+7c604f2a7c0004ac
+392000013d40c800
+794a0020614a0808
 7d20572a7c0004ac
-3862802060000000
-600000004bfff8cd
-e801001038210060
-4e8000207c0803a6
-0100000000000000
-3c4c000100000080
-7c0802a638429364
-7d0903a639000080
-3d2040003d40aaaa
-48000f5d614aaaaa
-91490000f821ff81
-4200fff839290004
-600000004bfff8e9
-3d00aaaa39400080
-3d2040007d4903a6
-6108aaaa3be00000
-7f8a400081490000
-3bff0001419e000c
-392900047fff07b4
-390000804200ffe8
-7d0903a63d405555
-614a55553d204000
+000000004e800020
+0000000000000000
+384294003c4c0001
+3d40c8007c0802a6
+3920000e614a0800
+f8010010794a0020
+7c0004acf821ffa1
+600000007d20572a
+4bfff91138628080
+3821006060000000
+7c0803a6e8010010
+000000004e800020
+0000008001000000
+384293a83c4c0001
+3d40c8007c0802a6
+39200001614a0800
+f8010010794a0020
+7c0004acf821ffa1
+600000007d20572a
+4bfff8b938628040
+3821006060000000
+7c0803a6e8010010
+000000004e800020
+0000008001000000
+384293503c4c0001
+390000807c0802a6
+3d40aaaa7d0903a6
+614aaaaa3d204000
+f821ff8148000f5d
 3929000491490000
-4bfff88d4200fff8
+4bfff8d54200fff8
 3940008060000000
-7d4903a63d005555
-610855553d204000
-7f8a400081490000
-3bff0001419e000c
-392900047fff07b4
-2fbf00004200ffe8
-3c62ffff419e001c
-7fe4fb7838a00100
-4bfff7c938637f68
+7d4903a63d00aaaa
+3be000003d204000
+814900006108aaaa
+419e000c7f8a4000
+7fff07b43bff0001
+4200ffe839290004
+3d40555539000080
+3d2040007d0903a6
+91490000614a5555
+4200fff839290004
+600000004bfff879
+3d00555539400080
+3d2040007d4903a6
+8149000061085555
+419e000c7f8a4000
+7fff07b43bff0001
+4200ffe839290004
+419e001c2fbf0000
+38a001003c62ffff
+38637f887fe4fb78
+600000004bfff7b5
+3ce0802039000100
+60e700037d0903a6
+392000013d404000
+7928f84278e70020
+7d2900d0792907e0
+7d293838394a0004
+912afffc7d294278
+4bfff7e54200ffe4
 3900010060000000
 7d0903a63ce08020
 3d40400060e70003
-78e7002039200001
-792907e07928f842
-394a00047d2900d0
+392000013ba00000
+7928f84278e70020
+7d2900d0792907e0
 7d2942787d293838
-4200ffe4912afffc
-600000004bfff7f9
-3ce0802039000100
-60e700037d0903a6
-3ba000003d404000
-78e7002039200001
-792907e07928f842
-7d2938387d2900d0
-810a00007d294278
-419e000c7f884840
-7fbd07b43bbd0001
-4200ffd4394a0004
-419e001c2fbd0000
-38a001003c62ffff
-38637f907fa4eb78
-600000004bfff715
-3940000039200020
-3d2a10007d2903a6
-3929000279480020
-79291764394a0001
-4200ffe891090000
-600000004bfff759
-3940000039200020
-3bc000007d2903a6
-792917643d2a1000
-5529043e81290008
-419e000c7f895000
-7fde07b43bde0001
-4200ffdc394a0001
-419e001c2fbe0000
-38a000203c62ffff
-38637fb87fc4f378
-600000004bfff68d
-386000007fffea14
-2f9f00007ffff214
-3c62ffff409e00ac
-4bfff66938637fe0
-7c9602a660000000
-7884002039400080
-392000007d4903a6
-794a1f243d490800
-39290001f92a0000
-7ff602a64200fff0
-3fe0000c7c9f2050
-7fff239663ff8000
-600000004bfff699
-7d3602a67bff0020
-7929002039000080
-3d4040007d0903a6
-394a0008e90a0000
-7cb602a64200fff8
-3ca0000c7d254850
-3c62ffff60a58000
-7fe4fb787ca54b96
-78a5032038637ff0
-600000004bfff5d5
-3821008038600001
-0000000048000ce8
-0000038001000000
-384290703c4c0001
-600000007c0802a6
-48000c6938628048
-3f60c800f821ff71
-637b10003be00000
-4bfff5897b7b0020
-7c0004ac60000000
-3f40c8007fe0df2a
-7b5a0020635a1004
-7fe0d72a7c0004ac
-4bfffc113fa0c800
-7bbd002063bd080c
-7fe0ef2a7c0004ac
-63de08103fc0c800
-7c0004ac7bde0020
-3d20c8007fe0f72a
-612908003940000c
-7c0004ac79290020
-7c0004ac7d404f2a
-7c0004ac7fe0ef2a
-3940000e7fe0f72a
+7f884840810a0000
+3bbd0001419e000c
+394a00047fbd07b4
+2fbd00004200ffd4
+3c62ffff419e001c
+7fa4eb7838a00100
+4bfff70138637fb0
+3920002060000000
+7d2903a639400000
+794800203d2a1000
+394a000139290002
+9109000079291764
+4bfff7454200ffe8
+3920002060000000
+7d2903a639400000
+3d2a10003bc00000
+8129000879291764
+7f8950005529043e
+3bde0001419e000c
+394a00017fde07b4
+2fbe00004200ffdc
+3c62ffff419e001c
+7fc4f37838a00020
+4bfff67938637fd8
+7fffea1460000000
+7ffff21438600000
+409e00ac2f9f0000
+3862800060000000
+600000004bfff655
+394000807c9602a6
+7d4903a678840020
+3d49080039200000
+f92a0000794a1f24
+4200fff039290001
+7c9f20507ff602a6
+63ff80003fe0000c
+4bfff6857fff2396
+7bff002060000000
+390000807d3602a6
+7d0903a679290020
+e90a00003d404000
+4200fff8394a0008
+7d2548507cb602a6
+60a580003ca0000c
+7ca54b9660000000
+386280107fe4fb78
+4bfff5c178a50320
+3860000160000000
+48000ce838210080
+0100000000000000
+3c4c000100000380
+7c0802a63842905c
+3862806860000000
+f821ff7148000c69
+3be000003f60c800
+7b7b0020637b1000
+600000004bfff575
+7fe0df2a7c0004ac
+635a10043f40c800
+7c0004ac7b5a0020
+3fa0c8007fe0d72a
+63bd080c4bfffc11
+7c0004ac7bbd0020
+3fc0c8007fe0ef2a
+7bde002063de0810
+7fe0f72a7c0004ac
+3940000c3d20c800
+7929002061290800
 7d404f2a7c0004ac
-7c0004ac39200200
-392000027d20ef2a
-7d20f72a7c0004ac
-4bfffb553860000f
 7fe0ef2a7c0004ac
-7c0004ac39200003
-3860000f7d20f72a
-392000064bfffb39
+7fe0f72a7c0004ac
+7c0004ac3940000e
+392002007d404f2a
 7d20ef2a7c0004ac
-7c0004ac3b800001
-3860000f7f80f72a
-392009204bfffb19
+7c0004ac39200002
+3860000f7d20f72a
+7c0004ac4bfffb55
+392000037fe0ef2a
+7d20f72a7c0004ac
+4bfffb393860000f
+7c0004ac39200006
+3b8000017d20ef2a
+7f80f72a7c0004ac
+4bfffb193860000f
+7c0004ac39200920
+7c0004ac7d20ef2a
+3860000f7fe0f72a
+392004004bfffafd
 7d20ef2a7c0004ac
 7fe0f72a7c0004ac
-4bfffafd3860000f
-7c0004ac39200400
-7c0004ac7d20ef2a
-386000037fe0f72a
-4bfffb794bfffae1
-2c2300004bfffbcd
-7c0004ac4082001c
-7c0004ac7f80df2a
-382100907f80d72a
-7c0004ac48000b64
-386000017f80df2a
-000000004bffffec
-0000068001000000
-38428ee83c4c0001
-600000003d20c000
-7929002061292000
-3d20c000f92280d8
-7929002061290020
-7d204eea7c0004ac
-792906003d40001c
-7d295392614a2000
-394a0018e94280d8
-7c0004ac3929ffff
-4e8000207d2057ea
-0000000000000000
-3c4c000100000000
-6000000038428e84
-39290010e92280d8
-7d204eea7c0004ac
-4082ffe871290008
-e94280d85469063e
+4bfffae138600003
+4bfffbcd4bfffb79
+4082001c2c230000
+7f80df2a7c0004ac
+7f80d72a7c0004ac
+48000b6438210090
+7f80df2a7c0004ac
+4bffffec38600001
+0100000000000000
+3c4c000100000680
+3d20c00038428ed4
+6129200060000000
+f92280f879290020
+612900203d20c000
+7c0004ac79290020
+3d40001c7d204eea
+614a200079290600
+e94280f87d295392
+3929ffff394a0018
 7d2057ea7c0004ac
 000000004e800020
 0000000000000000
-38428e403c4c0001
-fbc1fff07c0802a6
-3bc3fffffbe1fff8
-f821ffd1f8010010
-2fbf00008ffe0001
-38210030409e0010
-48000a8c38600000
-409e000c2b9f000a
-4bffff813860000d
-4bffff797fe3fb78
-000000004bffffd0
-0000028001000000
-408200082c240000
-2b8500243881fff0
-38600000f8640000
-3cc000014d9d0020
-60c6260078c683e4
-89490000e9240000
-419d002c2b8a0020
-70e800017cc75436
-2fa5000040820014
-38a0000a409e0054
-392900014800005c
-4bffffccf9240000
-409e00382fa50000
-38a0000a2b8a0030
-89490001409e003c
-409e00302f8a0078
-38a0001089490001
-409e00202f8a0078
-f924000039290002
-2f85001048000014
-2b8a0030409e000c
-38600000419effd8
-38c9ffd048000030
-2b8a000954ca063e
-7cc90734419d0034
-4c9c00207f892800
-7c6519d238e70001
-7c691a14f8e40000
-89270000e8e40000
-409effc82fa90000
-3949ff9f4e800020
+38428e703c4c0001
+e92280f860000000
+7c0004ac39290010
+712900087d204eea
+5469063e4082ffe8
+7c0004ace94280f8
+4e8000207d2057ea
+0000000000000000
+3c4c000100000000
+7c0802a638428e2c
+fbe1fff8fbc1fff0
+f80100103bc3ffff
+8ffe0001f821ffd1
+409e00102fbf0000
+3860000038210030
+2b9f000a48000a8c
+3860000d409e000c
+7fe3fb784bffff81
+4bffffd04bffff79
+0100000000000000
+2c24000000000280
+3881fff040820008
+f86400002b850024
+4d9d002038600000
+78c683e43cc00001
+e924000060c62600
+2b8a002089490000
+7cc75436419d002c
+4082001470e80001
+409e00542fa50000
+4800005c38a0000a
+f924000039290001
+2fa500004bffffcc
+2b8a0030409e0038
+409e003c38a0000a
+2f8a007889490001
+89490001409e0030
+2f8a007838a00010
+39290002409e0020
+48000014f9240000
+409e000c2f850010
+419effd82b8a0030
+4800003038600000
+54ca063e38c9ffd0
+419d00342b8a0009
+7f8928007cc90734
+38e700014c9c0020
+f8e400007c6519d2
+e8e400007c691a14
+2fa9000089270000
+4e800020409effc8
+554a063e3949ff9f
+419d00102b8a0019
+7d2907343929ffa9
+3949ffbf4bffffbc
 2b8a0019554a063e
-3929ffa9419d0010
-4bffffbc7d290734
-554a063e3949ffbf
-4d9d00202b8a0019
-4bffffe43929ffc9
-0000000000000000
-3920000000000000
-2f8a00007d4348ae
-7d234b78409e000c
-392900014e800020
-000000004bffffe8
-0000000000000000
-3900000078aae8c2
-7d2903a6392a0001
-78a9e8c242000030
-1d29fff8792a1f24
-7c8452147d035214
-392000007ca92a14
-7d4903a639450001
-4e80002042000018
-7d23412a7d24402a
-4bffffc439080008
-7d4849ae7d4448ae
-4bffffdc39290001
-0000000000000000
-3923ff9f00000000
-4d9d00202b890019
-7c6307b43863ffe0
-000000004e800020
+3929ffc94d9d0020
+000000004bffffe4
+0000000000000000
+7d4348ae39200000
+409e000c2f8a0000
+4e8000207d234b78
+4bffffe839290001
+0000000000000000
+78aae8c200000000
+392a000139000000
+420000307d2903a6
+792a1f2478a9e8c2
+7d0352141d29fff8
+7ca92a147c845214
+3945000139200000
+420000187d4903a6
+7d24402a4e800020
+390800087d23412a
+7d4448ae4bffffc4
+392900017d4849ae
+000000004bffffdc
+0000000000000000
+2b8900193923ff9f
+3863ffe04d9d0020
+4e8000207c6307b4
 0000000000000000
-38428bf03c4c0001
-3d2037367c0802a6
-612935347d908026
-65293332792907c6
-6129313091810008
-f821ffa1480007d9
-7cde33787c7d1b78
-f92100203be00000
-612964633d206665
-65296261792907c6
-f921002861293938
-2fa900007ca92b78
-2fbf0000409e0080
-3be00001409e0008
-386000007fbf2040
-2e270000419d0058
-7f65f3923b9fffff
-7ca928507d3bf1d2
-886500207ca12a14
-4bffff4141920010
-5463063e60000000
-e93d00002fbb0000
-7c69e1ae7f65db78
-409effc83b9cffff
-38600001e93d0000
-fbfd00007fe9fa14
-8181000838210060
-480007747d908120
-409e00142b9e0010
-3bff00017929e102
-4bffff687fff07b4
-4bfffff07d29f392
-0300000000000000
-3c4c000100000580
-7c0802a638428ae4
-f821ffb1480006e9
-7c7f1b78eb630000
-7cbd2b787c9c2378
-7fa3eb783bc00000
-600000004bfffe0d
-409d00147fa3f040
-7d3b5050e95f0000
-419c00107fa9e040
-3860000138210050
-7d3df0ae480006f0
-992a00003bde0001
-39290001e93f0000
-4bffffb8f93f0000
+3c4c000100000000
+7c0802a638428bdc
+7d9080263d203736
+792907c661293534
+9181000865293332
+480007d961293130
+7c7d1b78f821ffa1
+3be000007cde3378
+3d206665f9210020
+792907c661296463
+6129393865296261
+7ca92b78f9210028
+409e00802fa90000
+409e00082fbf0000
+7fbf20403be00001
+419d005838600000
+3b9fffff2e270000
+7d3bf1d27f65f392
+7ca12a147ca92850
+4192001088650020
+600000004bffff41
+2fbb00005463063e
+7f65db78e93d0000
+3b9cffff7c69e1ae
+e93d0000409effc8
+7fe9fa1438600001
+38210060fbfd0000
+7d90812081810008
+2b9e001048000774
+7929e102409e0014
+7fff07b43bff0001
+7d29f3924bffff68
+000000004bfffff0
+0000058003000000
+38428ad03c4c0001
+480006e97c0802a6
+eb630000f821ffb1
+7c9c23787c7f1b78
+3bc000007cbd2b78
+4bfffe0d7fa3eb78
+7fa3f04060000000
+e95f0000409d0014
+7fa9e0407d3b5050
+38210050419c0010
+480006f038600001
+3bde00017d3df0ae
+e93f0000992a0000
+f93f000039290001
+000000004bffffb8
+0000058001000000
+38428a503c4c0001
+480006617c0802a6
+7c7d1b78f821ffa1
+7ca32b787c9b2378
+38a0000a38800000
+eb5d00007cde3378
+7d1943787cfc3b78
+4bfffc497d3f4b78
+3940000060000000
+2fbe00007c6307b4
+2faa0000409e006c
+39400001409e0008
+7f8348007d3f5214
+409d00447d2a07b4
+2f8300007c6a1850
+3929000178690020
+3d408000419c0010
+409e00087f835000
+2c29000139200001
+418200143929ffff
+7d5a3850e8fd0000
+419c00307faad840
+3860000038210060
+2b9c001048000604
+7bdee102409e0014
+7d4a07b4394a0001
+7fdee3924bffff7c
+9b2700004bfffff0
+394a0001e95d0000
+4bffffa8f95d0000
 0100000000000000
-3c4c000100000580
-7c0802a638428a64
-f821ffa148000661
-7c9b23787c7d1b78
-388000007ca32b78
-7cde337838a0000a
-7cfc3b78eb5d0000
-7d3f4b787d194378
-600000004bfffc49
-7c6307b439400000
-409e006c2fbe0000
-409e00082faa0000
-7d3f521439400001
-7d2a07b47f834800
-7c6a1850409d0044
-786900202f830000
-419c001039290001
-7f8350003d408000
-39200001409e0008
-3929ffff2c290001
-e8fd000041820014
-7faad8407d5a3850
-38210060419c0030
-4800060438600000
-409e00142b9c0010
-394a00017bdee102
-4bffff7c7d4a07b4
-4bfffff07fdee392
-e95d00009b270000
-f95d0000394a0001
-000000004bffffa8
-0000078001000000
-384289683c4c0001
-480005397c0802a6
-7c741b79f821fed1
-38600000f8610060
-2fa4000041820068
-39210040419e0060
-3ac4ffff60000000
-f92100703b410020
-3ae0000060000000
-3a428088392280d0
-f92100783ba10060
-ebc1006089250000
+3c4c000100000780
+7c0802a638428954
+f821fed148000539
+f86100607c741b79
+4182006838600000
+419e00602fa40000
+6000000039210040
+3b4100203ac4ffff
+60000000f9210070
+392280f03ae00000
+3ba100603a4280a8
+89250000f9210078
+2fa90000ebc10060
+7ff4f050419e0010
+419c00207fbfb040
+993e000039200000
+7e941850e8610060
+382101307e8307b4
+2b89002548000508
+409e048839450001
+8925000038e00000
+f8a10068e9010070
+7d2741ae7cea07b4
+8d25000139070001
+2b8900647d0807b4
+2b890069419e0058
+2b890075419e0050
+2b890078419e0048
+2b890058419e0040
+2b890070419e0038
+2b890063419e0030
+2b890073419e0028
+2b890025419e0020
+2b89004f419e0018
+2b89006f419e0010
+409eff8838e70001
+2b890025394a0002
+7d1a42147d4a07b4
+992800207d5a5214
+409e00209aea0020
+f9210060393e0001
+993e000039200025
+38a90002e9210068
+892100414bffff04
+3a2600087fffb050
+3a600030eb660000
+3929ffd23b010042
+4082039c712900fd
+3b2000043aa00000
+3a0000013b800000
+7ddb00d039e0002d
+2b89006c48000108
+88f8000138d80001
+419d0118419e033c
+419e02402b890063
+2b89004f419d0038
+2b890058419e01e8
+3949ffd0419e0188
+2b8a0009554a063e
+395c0001419d00c4
+993c00207f81e214
+480000b0795c0020
+419e03042b890068
+419e000c2b890069
+409effc82b890064
+7d41e2142b890075
+7f6adb789aea0020
+57291838419e0034
+7e0948363929ffff
+418200207f694839
+e921006099e80000
+f921006039290001
+7d52482a7b291f24
+e88100607dca5038
+38e0000a7d465378
+7f45d378f9410080
+7e689b7839200000
+7c9e20507fa3eb78
+4bfffc9d7c84f850
+e9410080e8810060
+38c0000a7ea7ab78
+7d4553787c9e2050
+7fa3eb787c84f850
+3b1800014bfffaed
+e901006089380000
 419e00102fa90000
-7fbfb0407ff4f050
-39200000419c0020
-e8610060993e0000
-7e8307b47e941850
-4800050838210130
-394500012b890025
-38e00000409e0488
-e901007089250000
-7cea07b4f8a10068
-390700017d2741ae
-7d0807b48d250001
-419e00582b890064
-419e00502b890069
-419e00482b890075
-419e00402b890078
-419e00382b890058
-419e00302b890070
-419e00282b890063
-419e00202b890073
-419e00182b890025
-419e00102b89004f
-38e700012b89006f
-394a0002409eff88
-7d4a07b42b890025
-7d5a52147d1a4214
-9aea002099280020
-393e0001409e0020
-39200025f9210060
-e9210068993e0000
-4bffff0438a90002
-7fffb05089210041
-eb6600003a260008
-3b0100423a600030
-712900fd3929ffd2
-3aa000004082039c
-3b8000003b200004
-39e0002d3a000001
-480001087ddb00d0
-38d800012b89006c
-419e033c88f80001
-2b890063419d0118
-419d0038419e0240
-419e01e82b89004f
-419e01882b890058
-554a063e3949ffd0
-419d00c42b8a0009
-7f81e214395c0001
-795c0020993c0020
-2b890068480000b0
-2b890069419e0304
-2b890064419e000c
-2b890075409effc8
-9aea00207d41e214
-419e00347f6adb78
-3929ffff57291838
-7f6948397e094836
-99e8000041820020
-39290001e9210060
-7b291f24f9210060
-7dca50387d52482a
-7d465378e8810060
-f941008038e0000a
-392000007f45d378
-7fa3eb787e689b78
-7c84f8507c9e2050
-e88100604bfffc9d
-7ea7ab78e9410080
-7c9e205038c0000a
-7c84f8507d455378
-4bfffaed7fa3eb78
-893800003b180001
-2fa90000e9010060
-7d5e4050419e0010
-419dfee47fbf5040
-4bfffe907e268b78
-419e016c2b890073
-2b89006f419d006c
-2b890070419e00d4
-7d21e214409efef0
-7f66db7838e00010
-9ae900207c8af850
-3920000239000020
-7fa3eb787f45d378
-e88100604bfffc0d
-7fa3eb78e8a10078
-7c84f8507c9e2050
-e88100604bfffb75
-38c000107ea7ab78
-7c9e20507f65db78
-2b8900784bffff5c
-2b89007a419e0018
-2b890075419e01cc
-3aa000014bfffeb8
+7fbf50407d5e4050
+7e268b78419dfee4
+2b8900734bfffe90
+419d006c419e016c
+419e00d42b89006f
+409efef02b890070
 38e000107d21e214
-7e689b787c8af850
-7b291f249ae90020
-7fa3eb787f45d378
-392000007d72482a
-7d665b787f6b5838
-4bfffb89f9610080
+7c8af8507f66db78
+390000209ae90020
+7f45d37839200002
+4bfffc0d7fa3eb78
+e8a10078e8810060
+7c9e20507fa3eb78
+4bfffb757c84f850
 7ea7ab78e8810060
-7c9e205038c00010
-7d655b78e9610080
-7d21e2144bfffeec
-7c8af85038e00008
+7f65db7838c00010
+4bffff5c7c9e2050
+419e00182b890078
+419e01cc2b89007a
+4bfffeb82b890075
+7d21e2143aa00001
+7c8af85038e00010
 9ae900207e689b78
 7f45d3787b291f24
 7d72482a7fa3eb78
 7f6b583839200000
 f96100807d665b78
-e88100604bfffb35
-38c000087ea7ab78
-4bffffac7c9e2050
-390000207d21e214
-38c0000138e0000a
-7f45d3789ae90020
-7c8af85039200000
-4bfffaf97fa3eb78
-9b690000e9210060
-39290001e9210060
-4bfffe6cf9210060
-38a0000a7d21e214
-f9410088f9010090
-7f43d37838800000
-4bfff73d9ae90020
-f861008060000000
-4bfff8617f63db78
-e921008060000000
-409d00407fa91840
-e94100887c634850
-2fa30000e9010090
-7d4af85039230001
-39200001409e0008
-e8c100602c290001
-418200103929ffff
-7faa38407ce83050
-e8810060419d0020
-7fa3eb787f65db78
-7c84f8507c9e2050
-4bfffdd44bfff9cd
-98e6000038e00020
-38e70001e8e10060
-4bffffb4f8e10060
-3b2000082b87006c
-7cd83378409efdb0
-2b8700684bfffda8
-409efd9c3b200002
-3b2000017cd83378
-3b2000084bfffd90
-3a6000204bfffd88
-4bfffc603b010041
-7d455378993e0000
-39290001e9210060
-4bfffb24f9210060
-0100000000000000
-f9c1ff7000001280
-fa01ff80f9e1ff78
-fa41ff90fa21ff88
-fa81ffa0fa61ff98
-fac1ffb0faa1ffa8
-fb01ffc0fae1ffb8
-fb41ffd0fb21ffc8
-fb81ffe0fb61ffd8
-fbc1fff0fba1ffe8
-f8010010fbe1fff8
-e9c1ff704e800020
-ea01ff80e9e1ff78
-ea41ff90ea21ff88
-ea81ffa0ea61ff98
-eac1ffb0eaa1ffa8
-eb01ffc0eae1ffb8
-eb41ffd0eb21ffc8
-eb81ffe0eb61ffd8
-eba1ffe8e8010010
-ebc1fff07c0803a6
-4e800020ebe1fff8
-e8010010ebc1fff0
-7c0803a6ebe1fff8
-000000004e800020
+e88100604bfffb89
+38c000107ea7ab78
+e96100807c9e2050
+4bfffeec7d655b78
+38e000087d21e214
+7e689b787c8af850
+7b291f249ae90020
+7fa3eb787f45d378
+392000007d72482a
+7d665b787f6b5838
+4bfffb35f9610080
+7ea7ab78e8810060
+7c9e205038c00008
+7d21e2144bffffac
+38e0000a39000020
+9ae9002038c00001
+392000007f45d378
+7fa3eb787c8af850
+e92100604bfffaf9
+e92100609b690000
+f921006039290001
+7d21e2144bfffe6c
+f901009038a0000a
+38800000f9410088
+9ae900207f43d378
+600000004bfff73d
+7f63db78f8610080
+600000004bfff861
+7fa91840e9210080
+7c634850409d0040
+e9010090e9410088
+392300012fa30000
+409e00087d4af850
+2c29000139200001
+3929ffffe8c10060
+7ce8305041820010
+419d00207faa3840
+7f65db78e8810060
+7c9e20507fa3eb78
+4bfff9cd7c84f850
+38e000204bfffdd4
+e8e1006098e60000
+f8e1006038e70001
+2b87006c4bffffb4
+409efdb03b200008
+4bfffda87cd83378
+3b2000022b870068
+7cd83378409efd9c
+4bfffd903b200001
+4bfffd883b200008
+3b0100413a600020
+993e00004bfffc60
+e92100607d455378
+f921006039290001
+000000004bfffb24
+0000128001000000
+f9e1ff78f9c1ff70
+fa21ff88fa01ff80
+fa61ff98fa41ff90
+faa1ffa8fa81ffa0
+fae1ffb8fac1ffb0
+fb21ffc8fb01ffc0
+fb61ffd8fb41ffd0
+fba1ffe8fb81ffe0
+fbe1fff8fbc1fff0
+4e800020f8010010
+e9e1ff78e9c1ff70
+ea21ff88ea01ff80
+ea61ff98ea41ff90
+eaa1ffa8ea81ffa0
+eae1ffb8eac1ffb0
+eb21ffc8eb01ffc0
+eb61ffd8eb41ffd0
+e8010010eb81ffe0
+7c0803a6eba1ffe8
+ebe1fff8ebc1fff0
+ebc1fff04e800020
+ebe1fff8e8010010
+4e8000207c0803a6
 6d6f636c65570a0a
 63694d206f742065
 2120747461776f72
@@ -1281,6 +1283,8 @@ e8010010ebc1fff0
 000000204d415242
 4853414c46495053
 0000000000000020
+54454e5245485445
+0000000000000020
 2020202020202020
 203a4d4152422020
 000a424b20646c25
diff --git a/liteeth/fusesoc-add-files.py b/liteeth/fusesoc-add-files.py
new file mode 100644 (file)
index 0000000..2775d16
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/python3
+from fusesoc.capi2.generator import Generator
+import os
+import sys
+import pathlib
+
+class LiteEthGenerator(Generator):
+    def run(self):
+        board = self.config.get('board')
+
+        # Collect a bunch of directory path
+        script_dir = os.path.dirname(sys.argv[0])
+        gen_dir = os.path.join(script_dir, "generated", board)
+
+        print("Adding LiteEth for board... ", board)
+
+        # Add files to fusesoc
+        files = []
+        f = os.path.join(gen_dir, "liteeth_core.v")
+        files.append({f : {'file_type' : 'verilogSource'}})
+
+        self.add_files(files)
+
+g = LiteEthGenerator()
+g.run()
+g.write()
+
diff --git a/liteeth/gen-src/arty.yml b/liteeth/gen-src/arty.yml
new file mode 100644 (file)
index 0000000..7200a70
--- /dev/null
@@ -0,0 +1,15 @@
+# This file is Copyright (c) 2020 Florent Kermarrec <florent@enjoy-digital.fr>
+# License: BSD
+
+# PHY ----------------------------------------------------------------------
+phy:        LiteEthPHYMII
+vendor:     xilinx
+# Core ---------------------------------------------------------------------
+clk_freq:   100e6
+core:       wishbone
+endianness: little
+
+soc:
+    mem_map:
+        ethmac: 0x00010000
+    csr_data_width: 32
diff --git a/liteeth/gen-src/generate.sh b/liteeth/gen-src/generate.sh
new file mode 100755 (executable)
index 0000000..805e0b8
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+TARGETS=arty
+
+ME=$(realpath $0)
+echo ME=$ME
+MY_PATH=$(dirname $ME)
+echo MYPATH=$MY_PATH
+PARENT_PATH=$(realpath $MY_PATH/..)
+echo PARENT=$PARENT_PATH
+BUILD_PATH=$PARENT_PATH/build
+mkdir -p $BUILD_PATH
+GEN_PATH=$PARENT_PATH/generated
+mkdir -p $GEN_PATH
+
+for i in $TARGETS
+do
+    TARGET_BUILD_PATH=$BUILD_PATH/$i
+    TARGET_GEN_PATH=$GEN_PATH/$i
+    rm -rf $TARGET_BUILD_PATH
+    rm -rf $TARGET_GEN_PATH
+    mkdir -p $TARGET_BUILD_PATH
+    mkdir -p $TARGET_GEN_PATH
+
+    echo "Generating $i in $TARGET_BUILD_PATH"    
+    liteeth_gen --output-dir=$TARGET_BUILD_PATH $MY_PATH/$i.yml
+
+    cp $TARGET_BUILD_PATH/gateware/liteeth_core.v $TARGET_GEN_PATH/
+done
+        
diff --git a/liteeth/generated/arty/liteeth_core.v b/liteeth/generated/arty/liteeth_core.v
new file mode 100644 (file)
index 0000000..5157a8f
--- /dev/null
@@ -0,0 +1,3057 @@
+//--------------------------------------------------------------------------------
+// Auto-generated by Migen (b1b2b29) & LiteX (20ff2462) on 2020-06-15 17:21:34
+//--------------------------------------------------------------------------------
+module liteeth_core(
+       input wire sys_clock,
+       input wire sys_reset,
+       input wire mii_eth_clocks_tx,
+       input wire mii_eth_clocks_rx,
+       output wire mii_eth_rst_n,
+       inout wire mii_eth_mdio,
+       output wire mii_eth_mdc,
+       input wire mii_eth_rx_dv,
+       input wire mii_eth_rx_er,
+       input wire [3:0] mii_eth_rx_data,
+       output reg mii_eth_tx_en,
+       output reg [3:0] mii_eth_tx_data,
+       input wire mii_eth_col,
+       input wire mii_eth_crs,
+       input wire [29:0] wishbone_adr,
+       output wire [31:0] wishbone_dat_r,
+       input wire [31:0] wishbone_dat_w,
+       input wire [3:0] wishbone_sel,
+       input wire wishbone_cyc,
+       input wire wishbone_stb,
+       output wire wishbone_ack,
+       input wire wishbone_we,
+       input wire [2:0] wishbone_cti,
+       input wire [1:0] wishbone_bte,
+       output wire wishbone_err,
+       output wire interrupt
+);
+
+reg main_maccore_maccore_reset_storage = 1'd0;
+reg main_maccore_maccore_reset_re = 1'd0;
+reg [31:0] main_maccore_maccore_scratch_storage = 32'd305419896;
+reg main_maccore_maccore_scratch_re = 1'd0;
+wire [31:0] main_maccore_maccore_bus_errors_status;
+wire main_maccore_maccore_bus_errors_we;
+wire main_maccore_maccore_reset;
+wire main_maccore_maccore_bus_error;
+reg [31:0] main_maccore_maccore_bus_errors = 32'd0;
+reg [13:0] main_maccore_maccore_adr = 14'd0;
+reg main_maccore_maccore_we = 1'd0;
+wire [31:0] main_maccore_maccore_dat_w;
+wire [31:0] main_maccore_maccore_dat_r;
+wire [29:0] main_maccore_maccore_wishbone_adr;
+wire [31:0] main_maccore_maccore_wishbone_dat_w;
+wire [31:0] main_maccore_maccore_wishbone_dat_r;
+wire [3:0] main_maccore_maccore_wishbone_sel;
+wire main_maccore_maccore_wishbone_cyc;
+wire main_maccore_maccore_wishbone_stb;
+reg main_maccore_maccore_wishbone_ack = 1'd0;
+wire main_maccore_maccore_wishbone_we;
+wire [2:0] main_maccore_maccore_wishbone_cti;
+wire [1:0] main_maccore_maccore_wishbone_bte;
+reg main_maccore_maccore_wishbone_err = 1'd0;
+wire sys_clk;
+wire sys_rst;
+wire por_clk;
+reg main_maccore_int_rst = 1'd1;
+reg main_maccore_ethphy_reset_storage = 1'd0;
+reg main_maccore_ethphy_reset_re = 1'd0;
+wire eth_rx_clk;
+wire eth_rx_rst;
+wire eth_tx_clk;
+wire eth_tx_rst;
+wire main_maccore_ethphy_reset0;
+wire main_maccore_ethphy_reset1;
+reg [8:0] main_maccore_ethphy_counter = 9'd0;
+wire main_maccore_ethphy_counter_done;
+wire main_maccore_ethphy_counter_ce;
+wire main_maccore_ethphy_liteethphymiitx_sink_sink_valid;
+wire main_maccore_ethphy_liteethphymiitx_sink_sink_ready;
+wire main_maccore_ethphy_liteethphymiitx_sink_sink_first;
+wire main_maccore_ethphy_liteethphymiitx_sink_sink_last;
+wire [7:0] main_maccore_ethphy_liteethphymiitx_sink_sink_payload_data;
+wire main_maccore_ethphy_liteethphymiitx_sink_sink_payload_last_be;
+wire main_maccore_ethphy_liteethphymiitx_sink_sink_payload_error;
+wire main_maccore_ethphy_liteethphymiitx_converter_sink_valid;
+wire main_maccore_ethphy_liteethphymiitx_converter_sink_ready;
+reg main_maccore_ethphy_liteethphymiitx_converter_sink_first = 1'd0;
+reg main_maccore_ethphy_liteethphymiitx_converter_sink_last = 1'd0;
+wire [7:0] main_maccore_ethphy_liteethphymiitx_converter_sink_payload_data;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_valid;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_ready;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_first;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_last;
+wire [3:0] main_maccore_ethphy_liteethphymiitx_converter_source_payload_data;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_sink_valid;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_sink_ready;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_sink_first;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_sink_last;
+reg [7:0] main_maccore_ethphy_liteethphymiitx_converter_converter_sink_payload_data = 8'd0;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_source_valid;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_source_ready;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_source_first;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_source_last;
+reg [3:0] main_maccore_ethphy_liteethphymiitx_converter_converter_source_payload_data = 4'd0;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_source_payload_valid_token_count;
+reg main_maccore_ethphy_liteethphymiitx_converter_converter_mux = 1'd0;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_first;
+wire main_maccore_ethphy_liteethphymiitx_converter_converter_last;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_source_valid;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_source_ready;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_source_first;
+wire main_maccore_ethphy_liteethphymiitx_converter_source_source_last;
+wire [3:0] main_maccore_ethphy_liteethphymiitx_converter_source_source_payload_data;
+wire main_maccore_ethphy_liteethphymiirx_source_source_valid;
+wire main_maccore_ethphy_liteethphymiirx_source_source_ready;
+wire main_maccore_ethphy_liteethphymiirx_source_source_first;
+wire main_maccore_ethphy_liteethphymiirx_source_source_last;
+wire [7:0] main_maccore_ethphy_liteethphymiirx_source_source_payload_data;
+reg main_maccore_ethphy_liteethphymiirx_source_source_payload_last_be = 1'd0;
+reg main_maccore_ethphy_liteethphymiirx_source_source_payload_error = 1'd0;
+reg main_maccore_ethphy_liteethphymiirx_converter_sink_valid = 1'd0;
+wire main_maccore_ethphy_liteethphymiirx_converter_sink_ready;
+reg main_maccore_ethphy_liteethphymiirx_converter_sink_first = 1'd0;
+wire main_maccore_ethphy_liteethphymiirx_converter_sink_last;
+reg [3:0] main_maccore_ethphy_liteethphymiirx_converter_sink_payload_data = 4'd0;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_valid;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_ready;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_first;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_last;
+reg [7:0] main_maccore_ethphy_liteethphymiirx_converter_source_payload_data = 8'd0;
+wire main_maccore_ethphy_liteethphymiirx_converter_converter_sink_valid;
+wire main_maccore_ethphy_liteethphymiirx_converter_converter_sink_ready;
+wire main_maccore_ethphy_liteethphymiirx_converter_converter_sink_first;
+wire main_maccore_ethphy_liteethphymiirx_converter_converter_sink_last;
+wire [3:0] main_maccore_ethphy_liteethphymiirx_converter_converter_sink_payload_data;
+wire main_maccore_ethphy_liteethphymiirx_converter_converter_source_valid;
+wire main_maccore_ethphy_liteethphymiirx_converter_converter_source_ready;
+reg main_maccore_ethphy_liteethphymiirx_converter_converter_source_first = 1'd0;
+reg main_maccore_ethphy_liteethphymiirx_converter_converter_source_last = 1'd0;
+reg [7:0] main_maccore_ethphy_liteethphymiirx_converter_converter_source_payload_data = 8'd0;
+reg [1:0] main_maccore_ethphy_liteethphymiirx_converter_converter_source_payload_valid_token_count = 2'd0;
+reg main_maccore_ethphy_liteethphymiirx_converter_converter_demux = 1'd0;
+wire main_maccore_ethphy_liteethphymiirx_converter_converter_load_part;
+reg main_maccore_ethphy_liteethphymiirx_converter_converter_strobe_all = 1'd0;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_source_valid;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_source_ready;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_source_first;
+wire main_maccore_ethphy_liteethphymiirx_converter_source_source_last;
+wire [7:0] main_maccore_ethphy_liteethphymiirx_converter_source_source_payload_data;
+reg main_maccore_ethphy_liteethphymiirx_converter_reset = 1'd0;
+wire main_maccore_ethphy_mdc;
+wire main_maccore_ethphy_oe;
+wire main_maccore_ethphy_w;
+reg [2:0] main_maccore_ethphy_storage = 3'd0;
+reg main_maccore_ethphy_re = 1'd0;
+reg main_maccore_ethphy_r = 1'd0;
+reg main_maccore_ethphy_status = 1'd0;
+wire main_maccore_ethphy_we;
+wire main_maccore_ethphy_data_w;
+wire main_maccore_ethphy_data_oe;
+wire main_maccore_ethphy_data_r;
+wire main_tx_gap_inserter_sink_valid;
+reg main_tx_gap_inserter_sink_ready = 1'd0;
+wire main_tx_gap_inserter_sink_first;
+wire main_tx_gap_inserter_sink_last;
+wire [7:0] main_tx_gap_inserter_sink_payload_data;
+wire main_tx_gap_inserter_sink_payload_last_be;
+wire main_tx_gap_inserter_sink_payload_error;
+reg main_tx_gap_inserter_source_valid = 1'd0;
+wire main_tx_gap_inserter_source_ready;
+reg main_tx_gap_inserter_source_first = 1'd0;
+reg main_tx_gap_inserter_source_last = 1'd0;
+reg [7:0] main_tx_gap_inserter_source_payload_data = 8'd0;
+reg main_tx_gap_inserter_source_payload_last_be = 1'd0;
+reg main_tx_gap_inserter_source_payload_error = 1'd0;
+reg [3:0] main_tx_gap_inserter_counter = 4'd0;
+reg main_tx_gap_inserter_counter_reset = 1'd0;
+reg main_tx_gap_inserter_counter_ce = 1'd0;
+reg main_preamble_crc_status = 1'd1;
+wire main_preamble_crc_we;
+reg [31:0] main_preamble_errors_status = 32'd0;
+wire main_preamble_errors_we;
+reg [31:0] main_crc_errors_status = 32'd0;
+wire main_crc_errors_we;
+wire main_preamble_inserter_sink_valid;
+reg main_preamble_inserter_sink_ready = 1'd0;
+wire main_preamble_inserter_sink_first;
+wire main_preamble_inserter_sink_last;
+wire [7:0] main_preamble_inserter_sink_payload_data;
+wire main_preamble_inserter_sink_payload_last_be;
+wire main_preamble_inserter_sink_payload_error;
+reg main_preamble_inserter_source_valid = 1'd0;
+wire main_preamble_inserter_source_ready;
+reg main_preamble_inserter_source_first = 1'd0;
+reg main_preamble_inserter_source_last = 1'd0;
+reg [7:0] main_preamble_inserter_source_payload_data = 8'd0;
+wire main_preamble_inserter_source_payload_last_be;
+reg main_preamble_inserter_source_payload_error = 1'd0;
+reg [63:0] main_preamble_inserter_preamble = 64'd15372286728091293013;
+reg [2:0] main_preamble_inserter_cnt = 3'd0;
+reg main_preamble_inserter_clr_cnt = 1'd0;
+reg main_preamble_inserter_inc_cnt = 1'd0;
+wire main_preamble_checker_sink_valid;
+reg main_preamble_checker_sink_ready = 1'd0;
+wire main_preamble_checker_sink_first;
+wire main_preamble_checker_sink_last;
+wire [7:0] main_preamble_checker_sink_payload_data;
+wire main_preamble_checker_sink_payload_last_be;
+wire main_preamble_checker_sink_payload_error;
+reg main_preamble_checker_source_valid = 1'd0;
+wire main_preamble_checker_source_ready;
+reg main_preamble_checker_source_first = 1'd0;
+reg main_preamble_checker_source_last = 1'd0;
+wire [7:0] main_preamble_checker_source_payload_data;
+wire main_preamble_checker_source_payload_last_be;
+reg main_preamble_checker_source_payload_error = 1'd0;
+reg main_preamble_checker_error = 1'd0;
+wire main_crc32_inserter_sink_valid;
+reg main_crc32_inserter_sink_ready = 1'd0;
+wire main_crc32_inserter_sink_first;
+wire main_crc32_inserter_sink_last;
+wire [7:0] main_crc32_inserter_sink_payload_data;
+wire main_crc32_inserter_sink_payload_last_be;
+wire main_crc32_inserter_sink_payload_error;
+reg main_crc32_inserter_source_valid = 1'd0;
+wire main_crc32_inserter_source_ready;
+reg main_crc32_inserter_source_first = 1'd0;
+reg main_crc32_inserter_source_last = 1'd0;
+reg [7:0] main_crc32_inserter_source_payload_data = 8'd0;
+reg main_crc32_inserter_source_payload_last_be = 1'd0;
+reg main_crc32_inserter_source_payload_error = 1'd0;
+reg [7:0] main_crc32_inserter_data0 = 8'd0;
+wire [31:0] main_crc32_inserter_value;
+wire main_crc32_inserter_error;
+wire [7:0] main_crc32_inserter_data1;
+wire [31:0] main_crc32_inserter_last;
+reg [31:0] main_crc32_inserter_next = 32'd0;
+reg [31:0] main_crc32_inserter_reg = 32'd4294967295;
+reg main_crc32_inserter_ce = 1'd0;
+reg main_crc32_inserter_reset = 1'd0;
+reg [1:0] main_crc32_inserter_cnt = 2'd3;
+wire main_crc32_inserter_cnt_done;
+reg main_crc32_inserter_is_ongoing0 = 1'd0;
+reg main_crc32_inserter_is_ongoing1 = 1'd0;
+wire main_crc32_checker_sink_sink_valid;
+reg main_crc32_checker_sink_sink_ready = 1'd0;
+wire main_crc32_checker_sink_sink_first;
+wire main_crc32_checker_sink_sink_last;
+wire [7:0] main_crc32_checker_sink_sink_payload_data;
+wire main_crc32_checker_sink_sink_payload_last_be;
+wire main_crc32_checker_sink_sink_payload_error;
+wire main_crc32_checker_source_source_valid;
+wire main_crc32_checker_source_source_ready;
+reg main_crc32_checker_source_source_first = 1'd0;
+wire main_crc32_checker_source_source_last;
+wire [7:0] main_crc32_checker_source_source_payload_data;
+wire main_crc32_checker_source_source_payload_last_be;
+reg main_crc32_checker_source_source_payload_error = 1'd0;
+wire main_crc32_checker_error;
+wire [7:0] main_crc32_checker_crc_data0;
+wire [31:0] main_crc32_checker_crc_value;
+wire main_crc32_checker_crc_error;
+wire [7:0] main_crc32_checker_crc_data1;
+wire [31:0] main_crc32_checker_crc_last;
+reg [31:0] main_crc32_checker_crc_next = 32'd0;
+reg [31:0] main_crc32_checker_crc_reg = 32'd4294967295;
+reg main_crc32_checker_crc_ce = 1'd0;
+reg main_crc32_checker_crc_reset = 1'd0;
+reg main_crc32_checker_syncfifo_sink_valid = 1'd0;
+wire main_crc32_checker_syncfifo_sink_ready;
+wire main_crc32_checker_syncfifo_sink_first;
+wire main_crc32_checker_syncfifo_sink_last;
+wire [7:0] main_crc32_checker_syncfifo_sink_payload_data;
+wire main_crc32_checker_syncfifo_sink_payload_last_be;
+wire main_crc32_checker_syncfifo_sink_payload_error;
+wire main_crc32_checker_syncfifo_source_valid;
+wire main_crc32_checker_syncfifo_source_ready;
+wire main_crc32_checker_syncfifo_source_first;
+wire main_crc32_checker_syncfifo_source_last;
+wire [7:0] main_crc32_checker_syncfifo_source_payload_data;
+wire main_crc32_checker_syncfifo_source_payload_last_be;
+wire main_crc32_checker_syncfifo_source_payload_error;
+wire main_crc32_checker_syncfifo_syncfifo_we;
+wire main_crc32_checker_syncfifo_syncfifo_writable;
+wire main_crc32_checker_syncfifo_syncfifo_re;
+wire main_crc32_checker_syncfifo_syncfifo_readable;
+wire [11:0] main_crc32_checker_syncfifo_syncfifo_din;
+wire [11:0] main_crc32_checker_syncfifo_syncfifo_dout;
+reg [2:0] main_crc32_checker_syncfifo_level = 3'd0;
+reg main_crc32_checker_syncfifo_replace = 1'd0;
+reg [2:0] main_crc32_checker_syncfifo_produce = 3'd0;
+reg [2:0] main_crc32_checker_syncfifo_consume = 3'd0;
+reg [2:0] main_crc32_checker_syncfifo_wrport_adr = 3'd0;
+wire [11:0] main_crc32_checker_syncfifo_wrport_dat_r;
+wire main_crc32_checker_syncfifo_wrport_we;
+wire [11:0] main_crc32_checker_syncfifo_wrport_dat_w;
+wire main_crc32_checker_syncfifo_do_read;
+wire [2:0] main_crc32_checker_syncfifo_rdport_adr;
+wire [11:0] main_crc32_checker_syncfifo_rdport_dat_r;
+wire [7:0] main_crc32_checker_syncfifo_fifo_in_payload_data;
+wire main_crc32_checker_syncfifo_fifo_in_payload_last_be;
+wire main_crc32_checker_syncfifo_fifo_in_payload_error;
+wire main_crc32_checker_syncfifo_fifo_in_first;
+wire main_crc32_checker_syncfifo_fifo_in_last;
+wire [7:0] main_crc32_checker_syncfifo_fifo_out_payload_data;
+wire main_crc32_checker_syncfifo_fifo_out_payload_last_be;
+wire main_crc32_checker_syncfifo_fifo_out_payload_error;
+wire main_crc32_checker_syncfifo_fifo_out_first;
+wire main_crc32_checker_syncfifo_fifo_out_last;
+reg main_crc32_checker_fifo_reset = 1'd0;
+wire main_crc32_checker_fifo_in;
+wire main_crc32_checker_fifo_out;
+wire main_crc32_checker_fifo_full;
+wire main_ps_preamble_error_i;
+wire main_ps_preamble_error_o;
+reg main_ps_preamble_error_toggle_i = 1'd0;
+wire main_ps_preamble_error_toggle_o;
+reg main_ps_preamble_error_toggle_o_r = 1'd0;
+wire main_ps_crc_error_i;
+wire main_ps_crc_error_o;
+reg main_ps_crc_error_toggle_i = 1'd0;
+wire main_ps_crc_error_toggle_o;
+reg main_ps_crc_error_toggle_o_r = 1'd0;
+wire main_padding_inserter_sink_valid;
+reg main_padding_inserter_sink_ready = 1'd0;
+wire main_padding_inserter_sink_first;
+wire main_padding_inserter_sink_last;
+wire [7:0] main_padding_inserter_sink_payload_data;
+wire main_padding_inserter_sink_payload_last_be;
+wire main_padding_inserter_sink_payload_error;
+reg main_padding_inserter_source_valid = 1'd0;
+wire main_padding_inserter_source_ready;
+reg main_padding_inserter_source_first = 1'd0;
+reg main_padding_inserter_source_last = 1'd0;
+reg [7:0] main_padding_inserter_source_payload_data = 8'd0;
+reg main_padding_inserter_source_payload_last_be = 1'd0;
+reg main_padding_inserter_source_payload_error = 1'd0;
+reg [15:0] main_padding_inserter_counter = 16'd1;
+wire main_padding_inserter_counter_done;
+reg main_padding_inserter_counter_reset = 1'd0;
+reg main_padding_inserter_counter_ce = 1'd0;
+wire main_padding_checker_sink_valid;
+wire main_padding_checker_sink_ready;
+wire main_padding_checker_sink_first;
+wire main_padding_checker_sink_last;
+wire [7:0] main_padding_checker_sink_payload_data;
+wire main_padding_checker_sink_payload_last_be;
+wire main_padding_checker_sink_payload_error;
+wire main_padding_checker_source_valid;
+wire main_padding_checker_source_ready;
+wire main_padding_checker_source_first;
+wire main_padding_checker_source_last;
+wire [7:0] main_padding_checker_source_payload_data;
+wire main_padding_checker_source_payload_last_be;
+wire main_padding_checker_source_payload_error;
+wire main_tx_last_be_sink_valid;
+wire main_tx_last_be_sink_ready;
+wire main_tx_last_be_sink_first;
+wire main_tx_last_be_sink_last;
+wire [7:0] main_tx_last_be_sink_payload_data;
+wire main_tx_last_be_sink_payload_last_be;
+wire main_tx_last_be_sink_payload_error;
+wire main_tx_last_be_source_valid;
+wire main_tx_last_be_source_ready;
+reg main_tx_last_be_source_first = 1'd0;
+wire main_tx_last_be_source_last;
+wire [7:0] main_tx_last_be_source_payload_data;
+reg main_tx_last_be_source_payload_last_be = 1'd0;
+reg main_tx_last_be_source_payload_error = 1'd0;
+reg main_tx_last_be_ongoing = 1'd1;
+wire main_rx_last_be_sink_valid;
+wire main_rx_last_be_sink_ready;
+wire main_rx_last_be_sink_first;
+wire main_rx_last_be_sink_last;
+wire [7:0] main_rx_last_be_sink_payload_data;
+wire main_rx_last_be_sink_payload_last_be;
+wire main_rx_last_be_sink_payload_error;
+wire main_rx_last_be_source_valid;
+wire main_rx_last_be_source_ready;
+wire main_rx_last_be_source_first;
+wire main_rx_last_be_source_last;
+wire [7:0] main_rx_last_be_source_payload_data;
+reg main_rx_last_be_source_payload_last_be = 1'd0;
+wire main_rx_last_be_source_payload_error;
+wire main_tx_converter_sink_valid;
+wire main_tx_converter_sink_ready;
+wire main_tx_converter_sink_first;
+wire main_tx_converter_sink_last;
+wire [31:0] main_tx_converter_sink_payload_data;
+wire [3:0] main_tx_converter_sink_payload_last_be;
+wire [3:0] main_tx_converter_sink_payload_error;
+wire main_tx_converter_source_valid;
+wire main_tx_converter_source_ready;
+wire main_tx_converter_source_first;
+wire main_tx_converter_source_last;
+wire [7:0] main_tx_converter_source_payload_data;
+wire main_tx_converter_source_payload_last_be;
+wire main_tx_converter_source_payload_error;
+wire main_tx_converter_converter_sink_valid;
+wire main_tx_converter_converter_sink_ready;
+wire main_tx_converter_converter_sink_first;
+wire main_tx_converter_converter_sink_last;
+reg [39:0] main_tx_converter_converter_sink_payload_data = 40'd0;
+wire main_tx_converter_converter_source_valid;
+wire main_tx_converter_converter_source_ready;
+wire main_tx_converter_converter_source_first;
+wire main_tx_converter_converter_source_last;
+reg [9:0] main_tx_converter_converter_source_payload_data = 10'd0;
+wire main_tx_converter_converter_source_payload_valid_token_count;
+reg [1:0] main_tx_converter_converter_mux = 2'd0;
+wire main_tx_converter_converter_first;
+wire main_tx_converter_converter_last;
+wire main_tx_converter_source_source_valid;
+wire main_tx_converter_source_source_ready;
+wire main_tx_converter_source_source_first;
+wire main_tx_converter_source_source_last;
+wire [9:0] main_tx_converter_source_source_payload_data;
+wire main_rx_converter_sink_valid;
+wire main_rx_converter_sink_ready;
+wire main_rx_converter_sink_first;
+wire main_rx_converter_sink_last;
+wire [7:0] main_rx_converter_sink_payload_data;
+wire main_rx_converter_sink_payload_last_be;
+wire main_rx_converter_sink_payload_error;
+wire main_rx_converter_source_valid;
+wire main_rx_converter_source_ready;
+wire main_rx_converter_source_first;
+wire main_rx_converter_source_last;
+reg [31:0] main_rx_converter_source_payload_data = 32'd0;
+reg [3:0] main_rx_converter_source_payload_last_be = 4'd0;
+reg [3:0] main_rx_converter_source_payload_error = 4'd0;
+wire main_rx_converter_converter_sink_valid;
+wire main_rx_converter_converter_sink_ready;
+wire main_rx_converter_converter_sink_first;
+wire main_rx_converter_converter_sink_last;
+wire [9:0] main_rx_converter_converter_sink_payload_data;
+wire main_rx_converter_converter_source_valid;
+wire main_rx_converter_converter_source_ready;
+reg main_rx_converter_converter_source_first = 1'd0;
+reg main_rx_converter_converter_source_last = 1'd0;
+reg [39:0] main_rx_converter_converter_source_payload_data = 40'd0;
+reg [2:0] main_rx_converter_converter_source_payload_valid_token_count = 3'd0;
+reg [1:0] main_rx_converter_converter_demux = 2'd0;
+wire main_rx_converter_converter_load_part;
+reg main_rx_converter_converter_strobe_all = 1'd0;
+wire main_rx_converter_source_source_valid;
+wire main_rx_converter_source_source_ready;
+wire main_rx_converter_source_source_first;
+wire main_rx_converter_source_source_last;
+wire [39:0] main_rx_converter_source_source_payload_data;
+wire main_tx_cdc_sink_valid;
+wire main_tx_cdc_sink_ready;
+wire main_tx_cdc_sink_first;
+wire main_tx_cdc_sink_last;
+wire [31:0] main_tx_cdc_sink_payload_data;
+wire [3:0] main_tx_cdc_sink_payload_last_be;
+wire [3:0] main_tx_cdc_sink_payload_error;
+wire main_tx_cdc_source_valid;
+wire main_tx_cdc_source_ready;
+wire main_tx_cdc_source_first;
+wire main_tx_cdc_source_last;
+wire [31:0] main_tx_cdc_source_payload_data;
+wire [3:0] main_tx_cdc_source_payload_last_be;
+wire [3:0] main_tx_cdc_source_payload_error;
+wire main_tx_cdc_asyncfifo_we;
+wire main_tx_cdc_asyncfifo_writable;
+wire main_tx_cdc_asyncfifo_re;
+wire main_tx_cdc_asyncfifo_readable;
+wire [41:0] main_tx_cdc_asyncfifo_din;
+wire [41:0] main_tx_cdc_asyncfifo_dout;
+wire main_tx_cdc_graycounter0_ce;
+(* dont_touch = "true" *) reg [6:0] main_tx_cdc_graycounter0_q = 7'd0;
+wire [6:0] main_tx_cdc_graycounter0_q_next;
+reg [6:0] main_tx_cdc_graycounter0_q_binary = 7'd0;
+reg [6:0] main_tx_cdc_graycounter0_q_next_binary = 7'd0;
+wire main_tx_cdc_graycounter1_ce;
+(* dont_touch = "true" *) reg [6:0] main_tx_cdc_graycounter1_q = 7'd0;
+wire [6:0] main_tx_cdc_graycounter1_q_next;
+reg [6:0] main_tx_cdc_graycounter1_q_binary = 7'd0;
+reg [6:0] main_tx_cdc_graycounter1_q_next_binary = 7'd0;
+wire [6:0] main_tx_cdc_produce_rdomain;
+wire [6:0] main_tx_cdc_consume_wdomain;
+wire [5:0] main_tx_cdc_wrport_adr;
+wire [41:0] main_tx_cdc_wrport_dat_r;
+wire main_tx_cdc_wrport_we;
+wire [41:0] main_tx_cdc_wrport_dat_w;
+wire [5:0] main_tx_cdc_rdport_adr;
+wire [41:0] main_tx_cdc_rdport_dat_r;
+wire [31:0] main_tx_cdc_fifo_in_payload_data;
+wire [3:0] main_tx_cdc_fifo_in_payload_last_be;
+wire [3:0] main_tx_cdc_fifo_in_payload_error;
+wire main_tx_cdc_fifo_in_first;
+wire main_tx_cdc_fifo_in_last;
+wire [31:0] main_tx_cdc_fifo_out_payload_data;
+wire [3:0] main_tx_cdc_fifo_out_payload_last_be;
+wire [3:0] main_tx_cdc_fifo_out_payload_error;
+wire main_tx_cdc_fifo_out_first;
+wire main_tx_cdc_fifo_out_last;
+wire main_rx_cdc_sink_valid;
+wire main_rx_cdc_sink_ready;
+wire main_rx_cdc_sink_first;
+wire main_rx_cdc_sink_last;
+wire [31:0] main_rx_cdc_sink_payload_data;
+wire [3:0] main_rx_cdc_sink_payload_last_be;
+wire [3:0] main_rx_cdc_sink_payload_error;
+wire main_rx_cdc_source_valid;
+wire main_rx_cdc_source_ready;
+wire main_rx_cdc_source_first;
+wire main_rx_cdc_source_last;
+wire [31:0] main_rx_cdc_source_payload_data;
+wire [3:0] main_rx_cdc_source_payload_last_be;
+wire [3:0] main_rx_cdc_source_payload_error;
+wire main_rx_cdc_asyncfifo_we;
+wire main_rx_cdc_asyncfifo_writable;
+wire main_rx_cdc_asyncfifo_re;
+wire main_rx_cdc_asyncfifo_readable;
+wire [41:0] main_rx_cdc_asyncfifo_din;
+wire [41:0] main_rx_cdc_asyncfifo_dout;
+wire main_rx_cdc_graycounter0_ce;
+(* dont_touch = "true" *) reg [6:0] main_rx_cdc_graycounter0_q = 7'd0;
+wire [6:0] main_rx_cdc_graycounter0_q_next;
+reg [6:0] main_rx_cdc_graycounter0_q_binary = 7'd0;
+reg [6:0] main_rx_cdc_graycounter0_q_next_binary = 7'd0;
+wire main_rx_cdc_graycounter1_ce;
+(* dont_touch = "true" *) reg [6:0] main_rx_cdc_graycounter1_q = 7'd0;
+wire [6:0] main_rx_cdc_graycounter1_q_next;
+reg [6:0] main_rx_cdc_graycounter1_q_binary = 7'd0;
+reg [6:0] main_rx_cdc_graycounter1_q_next_binary = 7'd0;
+wire [6:0] main_rx_cdc_produce_rdomain;
+wire [6:0] main_rx_cdc_consume_wdomain;
+wire [5:0] main_rx_cdc_wrport_adr;
+wire [41:0] main_rx_cdc_wrport_dat_r;
+wire main_rx_cdc_wrport_we;
+wire [41:0] main_rx_cdc_wrport_dat_w;
+wire [5:0] main_rx_cdc_rdport_adr;
+wire [41:0] main_rx_cdc_rdport_dat_r;
+wire [31:0] main_rx_cdc_fifo_in_payload_data;
+wire [3:0] main_rx_cdc_fifo_in_payload_last_be;
+wire [3:0] main_rx_cdc_fifo_in_payload_error;
+wire main_rx_cdc_fifo_in_first;
+wire main_rx_cdc_fifo_in_last;
+wire [31:0] main_rx_cdc_fifo_out_payload_data;
+wire [3:0] main_rx_cdc_fifo_out_payload_last_be;
+wire [3:0] main_rx_cdc_fifo_out_payload_error;
+wire main_rx_cdc_fifo_out_first;
+wire main_rx_cdc_fifo_out_last;
+wire main_sink_valid;
+wire main_sink_ready;
+wire main_sink_first;
+wire main_sink_last;
+wire [31:0] main_sink_payload_data;
+wire [3:0] main_sink_payload_last_be;
+wire [3:0] main_sink_payload_error;
+wire main_source_valid;
+wire main_source_ready;
+wire main_source_first;
+wire main_source_last;
+wire [31:0] main_source_payload_data;
+wire [3:0] main_source_payload_last_be;
+wire [3:0] main_source_payload_error;
+wire [29:0] main_bus_adr;
+wire [31:0] main_bus_dat_w;
+wire [31:0] main_bus_dat_r;
+wire [3:0] main_bus_sel;
+wire main_bus_cyc;
+wire main_bus_stb;
+wire main_bus_ack;
+wire main_bus_we;
+wire [2:0] main_bus_cti;
+wire [1:0] main_bus_bte;
+wire main_bus_err;
+wire main_writer_sink_sink_valid;
+reg main_writer_sink_sink_ready = 1'd1;
+wire main_writer_sink_sink_first;
+wire main_writer_sink_sink_last;
+wire [31:0] main_writer_sink_sink_payload_data;
+wire [3:0] main_writer_sink_sink_payload_last_be;
+wire [3:0] main_writer_sink_sink_payload_error;
+wire main_writer_slot_status;
+wire main_writer_slot_we;
+wire [31:0] main_writer_length_status;
+wire main_writer_length_we;
+reg [31:0] main_writer_errors_status = 32'd0;
+wire main_writer_errors_we;
+wire main_writer_irq;
+wire main_writer_available_status;
+wire main_writer_available_pending;
+wire main_writer_available_trigger;
+reg main_writer_available_clear = 1'd0;
+wire main_writer_status_re;
+wire main_writer_status_r;
+wire main_writer_status_we;
+wire main_writer_status_w;
+wire main_writer_pending_re;
+wire main_writer_pending_r;
+wire main_writer_pending_we;
+wire main_writer_pending_w;
+reg main_writer_storage = 1'd0;
+reg main_writer_re = 1'd0;
+reg [2:0] main_writer_inc = 3'd0;
+reg [31:0] main_writer_counter = 32'd0;
+reg main_writer_slot = 1'd0;
+reg main_writer_slot_ce = 1'd0;
+reg main_writer_ongoing = 1'd0;
+reg main_writer_fifo_sink_valid = 1'd0;
+wire main_writer_fifo_sink_ready;
+reg main_writer_fifo_sink_first = 1'd0;
+reg main_writer_fifo_sink_last = 1'd0;
+wire main_writer_fifo_sink_payload_slot;
+wire [31:0] main_writer_fifo_sink_payload_length;
+wire main_writer_fifo_source_valid;
+wire main_writer_fifo_source_ready;
+wire main_writer_fifo_source_first;
+wire main_writer_fifo_source_last;
+wire main_writer_fifo_source_payload_slot;
+wire [31:0] main_writer_fifo_source_payload_length;
+wire main_writer_fifo_syncfifo_we;
+wire main_writer_fifo_syncfifo_writable;
+wire main_writer_fifo_syncfifo_re;
+wire main_writer_fifo_syncfifo_readable;
+wire [34:0] main_writer_fifo_syncfifo_din;
+wire [34:0] main_writer_fifo_syncfifo_dout;
+reg [1:0] main_writer_fifo_level = 2'd0;
+reg main_writer_fifo_replace = 1'd0;
+reg main_writer_fifo_produce = 1'd0;
+reg main_writer_fifo_consume = 1'd0;
+reg main_writer_fifo_wrport_adr = 1'd0;
+wire [34:0] main_writer_fifo_wrport_dat_r;
+wire main_writer_fifo_wrport_we;
+wire [34:0] main_writer_fifo_wrport_dat_w;
+wire main_writer_fifo_do_read;
+wire main_writer_fifo_rdport_adr;
+wire [34:0] main_writer_fifo_rdport_dat_r;
+wire main_writer_fifo_fifo_in_payload_slot;
+wire [31:0] main_writer_fifo_fifo_in_payload_length;
+wire main_writer_fifo_fifo_in_first;
+wire main_writer_fifo_fifo_in_last;
+wire main_writer_fifo_fifo_out_payload_slot;
+wire [31:0] main_writer_fifo_fifo_out_payload_length;
+wire main_writer_fifo_fifo_out_first;
+wire main_writer_fifo_fifo_out_last;
+reg [8:0] main_writer_memory0_adr = 9'd0;
+wire [31:0] main_writer_memory0_dat_r;
+reg main_writer_memory0_we = 1'd0;
+reg [31:0] main_writer_memory0_dat_w = 32'd0;
+reg [8:0] main_writer_memory1_adr = 9'd0;
+wire [31:0] main_writer_memory1_dat_r;
+reg main_writer_memory1_we = 1'd0;
+reg [31:0] main_writer_memory1_dat_w = 32'd0;
+reg main_reader_source_source_valid = 1'd0;
+wire main_reader_source_source_ready;
+reg main_reader_source_source_first = 1'd0;
+reg main_reader_source_source_last = 1'd0;
+reg [31:0] main_reader_source_source_payload_data = 32'd0;
+reg [3:0] main_reader_source_source_payload_last_be = 4'd0;
+reg [3:0] main_reader_source_source_payload_error = 4'd0;
+wire main_reader_start_re;
+wire main_reader_start_r;
+wire main_reader_start_we;
+reg main_reader_start_w = 1'd0;
+wire main_reader_ready_status;
+wire main_reader_ready_we;
+wire [1:0] main_reader_level_status;
+wire main_reader_level_we;
+reg main_reader_slot_storage = 1'd0;
+reg main_reader_slot_re = 1'd0;
+reg [10:0] main_reader_length_storage = 11'd0;
+reg main_reader_length_re = 1'd0;
+wire main_reader_irq;
+wire main_reader_done_status;
+reg main_reader_done_pending = 1'd0;
+reg main_reader_done_trigger = 1'd0;
+reg main_reader_done_clear = 1'd0;
+wire main_reader_eventmanager_status_re;
+wire main_reader_eventmanager_status_r;
+wire main_reader_eventmanager_status_we;
+wire main_reader_eventmanager_status_w;
+wire main_reader_eventmanager_pending_re;
+wire main_reader_eventmanager_pending_r;
+wire main_reader_eventmanager_pending_we;
+wire main_reader_eventmanager_pending_w;
+reg main_reader_eventmanager_storage = 1'd0;
+reg main_reader_eventmanager_re = 1'd0;
+wire main_reader_fifo_sink_valid;
+wire main_reader_fifo_sink_ready;
+reg main_reader_fifo_sink_first = 1'd0;
+reg main_reader_fifo_sink_last = 1'd0;
+wire main_reader_fifo_sink_payload_slot;
+wire [10:0] main_reader_fifo_sink_payload_length;
+wire main_reader_fifo_source_valid;
+reg main_reader_fifo_source_ready = 1'd0;
+wire main_reader_fifo_source_first;
+wire main_reader_fifo_source_last;
+wire main_reader_fifo_source_payload_slot;
+wire [10:0] main_reader_fifo_source_payload_length;
+wire main_reader_fifo_syncfifo_we;
+wire main_reader_fifo_syncfifo_writable;
+wire main_reader_fifo_syncfifo_re;
+wire main_reader_fifo_syncfifo_readable;
+wire [13:0] main_reader_fifo_syncfifo_din;
+wire [13:0] main_reader_fifo_syncfifo_dout;
+reg [1:0] main_reader_fifo_level = 2'd0;
+reg main_reader_fifo_replace = 1'd0;
+reg main_reader_fifo_produce = 1'd0;
+reg main_reader_fifo_consume = 1'd0;
+reg main_reader_fifo_wrport_adr = 1'd0;
+wire [13:0] main_reader_fifo_wrport_dat_r;
+wire main_reader_fifo_wrport_we;
+wire [13:0] main_reader_fifo_wrport_dat_w;
+wire main_reader_fifo_do_read;
+wire main_reader_fifo_rdport_adr;
+wire [13:0] main_reader_fifo_rdport_dat_r;
+wire main_reader_fifo_fifo_in_payload_slot;
+wire [10:0] main_reader_fifo_fifo_in_payload_length;
+wire main_reader_fifo_fifo_in_first;
+wire main_reader_fifo_fifo_in_last;
+wire main_reader_fifo_fifo_out_payload_slot;
+wire [10:0] main_reader_fifo_fifo_out_payload_length;
+wire main_reader_fifo_fifo_out_first;
+wire main_reader_fifo_fifo_out_last;
+reg [10:0] main_reader_counter = 11'd0;
+wire [8:0] main_reader_memory0_adr;
+wire [31:0] main_reader_memory0_dat_r;
+wire [8:0] main_reader_memory1_adr;
+wire [31:0] main_reader_memory1_dat_r;
+wire main_ev_irq;
+wire [29:0] main_sram0_bus_adr0;
+wire [31:0] main_sram0_bus_dat_w0;
+wire [31:0] main_sram0_bus_dat_r0;
+wire [3:0] main_sram0_bus_sel0;
+wire main_sram0_bus_cyc0;
+wire main_sram0_bus_stb0;
+reg main_sram0_bus_ack0 = 1'd0;
+wire main_sram0_bus_we0;
+wire [2:0] main_sram0_bus_cti0;
+wire [1:0] main_sram0_bus_bte0;
+reg main_sram0_bus_err0 = 1'd0;
+wire [8:0] main_sram0_adr0;
+wire [31:0] main_sram0_dat_r0;
+wire [29:0] main_sram1_bus_adr0;
+wire [31:0] main_sram1_bus_dat_w0;
+wire [31:0] main_sram1_bus_dat_r0;
+wire [3:0] main_sram1_bus_sel0;
+wire main_sram1_bus_cyc0;
+wire main_sram1_bus_stb0;
+reg main_sram1_bus_ack0 = 1'd0;
+wire main_sram1_bus_we0;
+wire [2:0] main_sram1_bus_cti0;
+wire [1:0] main_sram1_bus_bte0;
+reg main_sram1_bus_err0 = 1'd0;
+wire [8:0] main_sram1_adr0;
+wire [31:0] main_sram1_dat_r0;
+wire [29:0] main_sram0_bus_adr1;
+wire [31:0] main_sram0_bus_dat_w1;
+wire [31:0] main_sram0_bus_dat_r1;
+wire [3:0] main_sram0_bus_sel1;
+wire main_sram0_bus_cyc1;
+wire main_sram0_bus_stb1;
+reg main_sram0_bus_ack1 = 1'd0;
+wire main_sram0_bus_we1;
+wire [2:0] main_sram0_bus_cti1;
+wire [1:0] main_sram0_bus_bte1;
+reg main_sram0_bus_err1 = 1'd0;
+wire [8:0] main_sram0_adr1;
+wire [31:0] main_sram0_dat_r1;
+reg [3:0] main_sram0_we = 4'd0;
+wire [31:0] main_sram0_dat_w;
+wire [29:0] main_sram1_bus_adr1;
+wire [31:0] main_sram1_bus_dat_w1;
+wire [31:0] main_sram1_bus_dat_r1;
+wire [3:0] main_sram1_bus_sel1;
+wire main_sram1_bus_cyc1;
+wire main_sram1_bus_stb1;
+reg main_sram1_bus_ack1 = 1'd0;
+wire main_sram1_bus_we1;
+wire [2:0] main_sram1_bus_cti1;
+wire [1:0] main_sram1_bus_bte1;
+reg main_sram1_bus_err1 = 1'd0;
+wire [8:0] main_sram1_adr1;
+wire [31:0] main_sram1_dat_r1;
+reg [3:0] main_sram1_we = 4'd0;
+wire [31:0] main_sram1_dat_w;
+reg [3:0] main_slave_sel = 4'd0;
+reg [3:0] main_slave_sel_r = 4'd0;
+reg builder_state = 1'd0;
+reg builder_next_state = 1'd0;
+reg builder_liteethmacgap_state = 1'd0;
+reg builder_liteethmacgap_next_state = 1'd0;
+reg [1:0] builder_liteethmacpreambleinserter_state = 2'd0;
+reg [1:0] builder_liteethmacpreambleinserter_next_state = 2'd0;
+reg builder_liteethmacpreamblechecker_state = 1'd0;
+reg builder_liteethmacpreamblechecker_next_state = 1'd0;
+reg [1:0] builder_liteethmaccrc32inserter_state = 2'd0;
+reg [1:0] builder_liteethmaccrc32inserter_next_state = 2'd0;
+reg [1:0] builder_liteethmaccrc32checker_state = 2'd0;
+reg [1:0] builder_liteethmaccrc32checker_next_state = 2'd0;
+reg builder_liteethmacpaddinginserter_state = 1'd0;
+reg builder_liteethmacpaddinginserter_next_state = 1'd0;
+reg [2:0] builder_liteethmacsramwriter_state = 3'd0;
+reg [2:0] builder_liteethmacsramwriter_next_state = 3'd0;
+reg [31:0] main_writer_counter_t_next_value = 32'd0;
+reg main_writer_counter_t_next_value_ce = 1'd0;
+reg [31:0] main_writer_errors_status_f_next_value = 32'd0;
+reg main_writer_errors_status_f_next_value_ce = 1'd0;
+reg [1:0] builder_liteethmacsramreader_state = 2'd0;
+reg [1:0] builder_liteethmacsramreader_next_state = 2'd0;
+reg [10:0] main_reader_counter_next_value = 11'd0;
+reg main_reader_counter_next_value_ce = 1'd0;
+wire [29:0] builder_shared_adr;
+wire [31:0] builder_shared_dat_w;
+reg [31:0] builder_shared_dat_r = 32'd0;
+wire [3:0] builder_shared_sel;
+wire builder_shared_cyc;
+wire builder_shared_stb;
+reg builder_shared_ack = 1'd0;
+wire builder_shared_we;
+wire [2:0] builder_shared_cti;
+wire [1:0] builder_shared_bte;
+wire builder_shared_err;
+wire builder_request;
+wire builder_grant;
+reg [1:0] builder_slave_sel = 2'd0;
+reg [1:0] builder_slave_sel_r = 2'd0;
+reg builder_error = 1'd0;
+wire builder_wait;
+wire builder_done;
+reg [19:0] builder_count = 20'd1000000;
+wire [13:0] builder_interface0_bank_bus_adr;
+wire builder_interface0_bank_bus_we;
+wire [31:0] builder_interface0_bank_bus_dat_w;
+reg [31:0] builder_interface0_bank_bus_dat_r = 32'd0;
+wire builder_csrbank0_reset0_re;
+wire builder_csrbank0_reset0_r;
+wire builder_csrbank0_reset0_we;
+wire builder_csrbank0_reset0_w;
+wire builder_csrbank0_scratch0_re;
+wire [31:0] builder_csrbank0_scratch0_r;
+wire builder_csrbank0_scratch0_we;
+wire [31:0] builder_csrbank0_scratch0_w;
+wire builder_csrbank0_bus_errors_re;
+wire [31:0] builder_csrbank0_bus_errors_r;
+wire builder_csrbank0_bus_errors_we;
+wire [31:0] builder_csrbank0_bus_errors_w;
+wire builder_csrbank0_sel;
+wire [13:0] builder_interface1_bank_bus_adr;
+wire builder_interface1_bank_bus_we;
+wire [31:0] builder_interface1_bank_bus_dat_w;
+reg [31:0] builder_interface1_bank_bus_dat_r = 32'd0;
+wire builder_csrbank1_sram_writer_slot_re;
+wire builder_csrbank1_sram_writer_slot_r;
+wire builder_csrbank1_sram_writer_slot_we;
+wire builder_csrbank1_sram_writer_slot_w;
+wire builder_csrbank1_sram_writer_length_re;
+wire [31:0] builder_csrbank1_sram_writer_length_r;
+wire builder_csrbank1_sram_writer_length_we;
+wire [31:0] builder_csrbank1_sram_writer_length_w;
+wire builder_csrbank1_sram_writer_errors_re;
+wire [31:0] builder_csrbank1_sram_writer_errors_r;
+wire builder_csrbank1_sram_writer_errors_we;
+wire [31:0] builder_csrbank1_sram_writer_errors_w;
+wire builder_csrbank1_sram_writer_ev_enable0_re;
+wire builder_csrbank1_sram_writer_ev_enable0_r;
+wire builder_csrbank1_sram_writer_ev_enable0_we;
+wire builder_csrbank1_sram_writer_ev_enable0_w;
+wire builder_csrbank1_sram_reader_ready_re;
+wire builder_csrbank1_sram_reader_ready_r;
+wire builder_csrbank1_sram_reader_ready_we;
+wire builder_csrbank1_sram_reader_ready_w;
+wire builder_csrbank1_sram_reader_level_re;
+wire [1:0] builder_csrbank1_sram_reader_level_r;
+wire builder_csrbank1_sram_reader_level_we;
+wire [1:0] builder_csrbank1_sram_reader_level_w;
+wire builder_csrbank1_sram_reader_slot0_re;
+wire builder_csrbank1_sram_reader_slot0_r;
+wire builder_csrbank1_sram_reader_slot0_we;
+wire builder_csrbank1_sram_reader_slot0_w;
+wire builder_csrbank1_sram_reader_length0_re;
+wire [10:0] builder_csrbank1_sram_reader_length0_r;
+wire builder_csrbank1_sram_reader_length0_we;
+wire [10:0] builder_csrbank1_sram_reader_length0_w;
+wire builder_csrbank1_sram_reader_ev_enable0_re;
+wire builder_csrbank1_sram_reader_ev_enable0_r;
+wire builder_csrbank1_sram_reader_ev_enable0_we;
+wire builder_csrbank1_sram_reader_ev_enable0_w;
+wire builder_csrbank1_preamble_crc_re;
+wire builder_csrbank1_preamble_crc_r;
+wire builder_csrbank1_preamble_crc_we;
+wire builder_csrbank1_preamble_crc_w;
+wire builder_csrbank1_preamble_errors_re;
+wire [31:0] builder_csrbank1_preamble_errors_r;
+wire builder_csrbank1_preamble_errors_we;
+wire [31:0] builder_csrbank1_preamble_errors_w;
+wire builder_csrbank1_crc_errors_re;
+wire [31:0] builder_csrbank1_crc_errors_r;
+wire builder_csrbank1_crc_errors_we;
+wire [31:0] builder_csrbank1_crc_errors_w;
+wire builder_csrbank1_sel;
+wire [13:0] builder_interface2_bank_bus_adr;
+wire builder_interface2_bank_bus_we;
+wire [31:0] builder_interface2_bank_bus_dat_w;
+reg [31:0] builder_interface2_bank_bus_dat_r = 32'd0;
+wire builder_csrbank2_crg_reset0_re;
+wire builder_csrbank2_crg_reset0_r;
+wire builder_csrbank2_crg_reset0_we;
+wire builder_csrbank2_crg_reset0_w;
+wire builder_csrbank2_mdio_w0_re;
+wire [2:0] builder_csrbank2_mdio_w0_r;
+wire builder_csrbank2_mdio_w0_we;
+wire [2:0] builder_csrbank2_mdio_w0_w;
+wire builder_csrbank2_mdio_r_re;
+wire builder_csrbank2_mdio_r_r;
+wire builder_csrbank2_mdio_r_we;
+wire builder_csrbank2_mdio_r_w;
+wire builder_csrbank2_sel;
+wire [13:0] builder_adr;
+wire builder_we;
+wire [31:0] builder_dat_w;
+wire [31:0] builder_dat_r;
+reg [29:0] builder_array_muxed0 = 30'd0;
+reg [31:0] builder_array_muxed1 = 32'd0;
+reg [3:0] builder_array_muxed2 = 4'd0;
+reg builder_array_muxed3 = 1'd0;
+reg builder_array_muxed4 = 1'd0;
+reg builder_array_muxed5 = 1'd0;
+reg [2:0] builder_array_muxed6 = 3'd0;
+reg [1:0] builder_array_muxed7 = 2'd0;
+wire builder_rst_meta0;
+wire builder_rst_meta1;
+(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg builder_xilinxmultiregimpl0_regs0 = 1'd0;
+(* async_reg = "true", dont_touch = "true" *) reg builder_xilinxmultiregimpl0_regs1 = 1'd0;
+(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg builder_xilinxmultiregimpl1_regs0 = 1'd0;
+(* async_reg = "true", dont_touch = "true" *) reg builder_xilinxmultiregimpl1_regs1 = 1'd0;
+(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg builder_xilinxmultiregimpl2_regs0 = 1'd0;
+(* async_reg = "true", dont_touch = "true" *) reg builder_xilinxmultiregimpl2_regs1 = 1'd0;
+(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl3_regs0 = 7'd0;
+(* async_reg = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl3_regs1 = 7'd0;
+(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl4_regs0 = 7'd0;
+(* async_reg = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl4_regs1 = 7'd0;
+(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl5_regs0 = 7'd0;
+(* async_reg = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl5_regs1 = 7'd0;
+(* async_reg = "true", mr_ff = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl6_regs0 = 7'd0;
+(* async_reg = "true", dont_touch = "true" *) reg [6:0] builder_xilinxmultiregimpl6_regs1 = 7'd0;
+
+assign interrupt = main_ev_irq;
+assign main_maccore_maccore_bus_error = builder_error;
+assign main_maccore_maccore_reset = main_maccore_maccore_reset_re;
+assign main_maccore_maccore_bus_errors_status = main_maccore_maccore_bus_errors;
+assign main_maccore_maccore_dat_w = main_maccore_maccore_wishbone_dat_w;
+assign main_maccore_maccore_wishbone_dat_r = main_maccore_maccore_dat_r;
+always @(*) begin
+       main_maccore_maccore_we <= 1'd0;
+       main_maccore_maccore_wishbone_ack <= 1'd0;
+       builder_next_state <= 1'd0;
+       main_maccore_maccore_adr <= 14'd0;
+       builder_next_state <= builder_state;
+       case (builder_state)
+               1'd1: begin
+                       main_maccore_maccore_wishbone_ack <= 1'd1;
+                       builder_next_state <= 1'd0;
+               end
+               default: begin
+                       if ((main_maccore_maccore_wishbone_cyc & main_maccore_maccore_wishbone_stb)) begin
+                               main_maccore_maccore_adr <= main_maccore_maccore_wishbone_adr;
+                               main_maccore_maccore_we <= (main_maccore_maccore_wishbone_we & (main_maccore_maccore_wishbone_sel != 1'd0));
+                               builder_next_state <= 1'd1;
+                       end
+               end
+       endcase
+end
+assign sys_clk = sys_clock;
+assign por_clk = sys_clock;
+assign sys_rst = main_maccore_int_rst;
+assign eth_rx_clk = mii_eth_clocks_rx;
+assign eth_tx_clk = mii_eth_clocks_tx;
+assign main_maccore_ethphy_reset0 = (main_maccore_ethphy_reset_storage | main_maccore_ethphy_reset1);
+assign mii_eth_rst_n = (~main_maccore_ethphy_reset0);
+assign main_maccore_ethphy_counter_done = (main_maccore_ethphy_counter == 9'd256);
+assign main_maccore_ethphy_counter_ce = (~main_maccore_ethphy_counter_done);
+assign main_maccore_ethphy_reset1 = (~main_maccore_ethphy_counter_done);
+assign main_maccore_ethphy_liteethphymiitx_converter_sink_valid = main_maccore_ethphy_liteethphymiitx_sink_sink_valid;
+assign main_maccore_ethphy_liteethphymiitx_converter_sink_payload_data = main_maccore_ethphy_liteethphymiitx_sink_sink_payload_data;
+assign main_maccore_ethphy_liteethphymiitx_sink_sink_ready = main_maccore_ethphy_liteethphymiitx_converter_sink_ready;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_ready = 1'd1;
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_sink_valid = main_maccore_ethphy_liteethphymiitx_converter_sink_valid;
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_sink_first = main_maccore_ethphy_liteethphymiitx_converter_sink_first;
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_sink_last = main_maccore_ethphy_liteethphymiitx_converter_sink_last;
+assign main_maccore_ethphy_liteethphymiitx_converter_sink_ready = main_maccore_ethphy_liteethphymiitx_converter_converter_sink_ready;
+always @(*) begin
+       main_maccore_ethphy_liteethphymiitx_converter_converter_sink_payload_data <= 8'd0;
+       main_maccore_ethphy_liteethphymiitx_converter_converter_sink_payload_data[3:0] <= main_maccore_ethphy_liteethphymiitx_converter_sink_payload_data[3:0];
+       main_maccore_ethphy_liteethphymiitx_converter_converter_sink_payload_data[7:4] <= main_maccore_ethphy_liteethphymiitx_converter_sink_payload_data[7:4];
+end
+assign main_maccore_ethphy_liteethphymiitx_converter_source_valid = main_maccore_ethphy_liteethphymiitx_converter_source_source_valid;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_first = main_maccore_ethphy_liteethphymiitx_converter_source_source_first;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_last = main_maccore_ethphy_liteethphymiitx_converter_source_source_last;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_source_ready = main_maccore_ethphy_liteethphymiitx_converter_source_ready;
+assign {main_maccore_ethphy_liteethphymiitx_converter_source_payload_data} = main_maccore_ethphy_liteethphymiitx_converter_source_source_payload_data;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_source_valid = main_maccore_ethphy_liteethphymiitx_converter_converter_source_valid;
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_source_ready = main_maccore_ethphy_liteethphymiitx_converter_source_source_ready;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_source_first = main_maccore_ethphy_liteethphymiitx_converter_converter_source_first;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_source_last = main_maccore_ethphy_liteethphymiitx_converter_converter_source_last;
+assign main_maccore_ethphy_liteethphymiitx_converter_source_source_payload_data = main_maccore_ethphy_liteethphymiitx_converter_converter_source_payload_data;
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_first = (main_maccore_ethphy_liteethphymiitx_converter_converter_mux == 1'd0);
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_last = (main_maccore_ethphy_liteethphymiitx_converter_converter_mux == 1'd1);
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_source_valid = main_maccore_ethphy_liteethphymiitx_converter_converter_sink_valid;
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_source_first = (main_maccore_ethphy_liteethphymiitx_converter_converter_sink_first & main_maccore_ethphy_liteethphymiitx_converter_converter_first);
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_source_last = (main_maccore_ethphy_liteethphymiitx_converter_converter_sink_last & main_maccore_ethphy_liteethphymiitx_converter_converter_last);
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_sink_ready = (main_maccore_ethphy_liteethphymiitx_converter_converter_last & main_maccore_ethphy_liteethphymiitx_converter_converter_source_ready);
+always @(*) begin
+       main_maccore_ethphy_liteethphymiitx_converter_converter_source_payload_data <= 4'd0;
+       case (main_maccore_ethphy_liteethphymiitx_converter_converter_mux)
+               1'd0: begin
+                       main_maccore_ethphy_liteethphymiitx_converter_converter_source_payload_data <= main_maccore_ethphy_liteethphymiitx_converter_converter_sink_payload_data[3:0];
+               end
+               default: begin
+                       main_maccore_ethphy_liteethphymiitx_converter_converter_source_payload_data <= main_maccore_ethphy_liteethphymiitx_converter_converter_sink_payload_data[7:4];
+               end
+       endcase
+end
+assign main_maccore_ethphy_liteethphymiitx_converter_converter_source_payload_valid_token_count = main_maccore_ethphy_liteethphymiitx_converter_converter_last;
+assign main_maccore_ethphy_liteethphymiirx_converter_sink_last = (~mii_eth_rx_dv);
+assign main_maccore_ethphy_liteethphymiirx_source_source_valid = main_maccore_ethphy_liteethphymiirx_converter_source_valid;
+assign main_maccore_ethphy_liteethphymiirx_converter_source_ready = main_maccore_ethphy_liteethphymiirx_source_source_ready;
+assign main_maccore_ethphy_liteethphymiirx_source_source_first = main_maccore_ethphy_liteethphymiirx_converter_source_first;
+assign main_maccore_ethphy_liteethphymiirx_source_source_last = main_maccore_ethphy_liteethphymiirx_converter_source_last;
+assign main_maccore_ethphy_liteethphymiirx_source_source_payload_data = main_maccore_ethphy_liteethphymiirx_converter_source_payload_data;
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_sink_valid = main_maccore_ethphy_liteethphymiirx_converter_sink_valid;
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_sink_first = main_maccore_ethphy_liteethphymiirx_converter_sink_first;
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_sink_last = main_maccore_ethphy_liteethphymiirx_converter_sink_last;
+assign main_maccore_ethphy_liteethphymiirx_converter_sink_ready = main_maccore_ethphy_liteethphymiirx_converter_converter_sink_ready;
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_sink_payload_data = {main_maccore_ethphy_liteethphymiirx_converter_sink_payload_data};
+assign main_maccore_ethphy_liteethphymiirx_converter_source_valid = main_maccore_ethphy_liteethphymiirx_converter_source_source_valid;
+assign main_maccore_ethphy_liteethphymiirx_converter_source_first = main_maccore_ethphy_liteethphymiirx_converter_source_source_first;
+assign main_maccore_ethphy_liteethphymiirx_converter_source_last = main_maccore_ethphy_liteethphymiirx_converter_source_source_last;
+assign main_maccore_ethphy_liteethphymiirx_converter_source_source_ready = main_maccore_ethphy_liteethphymiirx_converter_source_ready;
+always @(*) begin
+       main_maccore_ethphy_liteethphymiirx_converter_source_payload_data <= 8'd0;
+       main_maccore_ethphy_liteethphymiirx_converter_source_payload_data[3:0] <= main_maccore_ethphy_liteethphymiirx_converter_source_source_payload_data[3:0];
+       main_maccore_ethphy_liteethphymiirx_converter_source_payload_data[7:4] <= main_maccore_ethphy_liteethphymiirx_converter_source_source_payload_data[7:4];
+end
+assign main_maccore_ethphy_liteethphymiirx_converter_source_source_valid = main_maccore_ethphy_liteethphymiirx_converter_converter_source_valid;
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_source_ready = main_maccore_ethphy_liteethphymiirx_converter_source_source_ready;
+assign main_maccore_ethphy_liteethphymiirx_converter_source_source_first = main_maccore_ethphy_liteethphymiirx_converter_converter_source_first;
+assign main_maccore_ethphy_liteethphymiirx_converter_source_source_last = main_maccore_ethphy_liteethphymiirx_converter_converter_source_last;
+assign main_maccore_ethphy_liteethphymiirx_converter_source_source_payload_data = main_maccore_ethphy_liteethphymiirx_converter_converter_source_payload_data;
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_sink_ready = ((~main_maccore_ethphy_liteethphymiirx_converter_converter_strobe_all) | main_maccore_ethphy_liteethphymiirx_converter_converter_source_ready);
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_source_valid = main_maccore_ethphy_liteethphymiirx_converter_converter_strobe_all;
+assign main_maccore_ethphy_liteethphymiirx_converter_converter_load_part = (main_maccore_ethphy_liteethphymiirx_converter_converter_sink_valid & main_maccore_ethphy_liteethphymiirx_converter_converter_sink_ready);
+assign mii_eth_mdc = main_maccore_ethphy_storage[0];
+assign main_maccore_ethphy_data_oe = main_maccore_ethphy_storage[1];
+assign main_maccore_ethphy_data_w = main_maccore_ethphy_storage[2];
+assign main_tx_cdc_sink_valid = main_source_valid;
+assign main_source_ready = main_tx_cdc_sink_ready;
+assign main_tx_cdc_sink_first = main_source_first;
+assign main_tx_cdc_sink_last = main_source_last;
+assign main_tx_cdc_sink_payload_data = main_source_payload_data;
+assign main_tx_cdc_sink_payload_last_be = main_source_payload_last_be;
+assign main_tx_cdc_sink_payload_error = main_source_payload_error;
+assign main_sink_valid = main_rx_cdc_source_valid;
+assign main_rx_cdc_source_ready = main_sink_ready;
+assign main_sink_first = main_rx_cdc_source_first;
+assign main_sink_last = main_rx_cdc_source_last;
+assign main_sink_payload_data = main_rx_cdc_source_payload_data;
+assign main_sink_payload_last_be = main_rx_cdc_source_payload_last_be;
+assign main_sink_payload_error = main_rx_cdc_source_payload_error;
+assign main_ps_preamble_error_i = main_preamble_checker_error;
+assign main_ps_crc_error_i = main_crc32_checker_error;
+always @(*) begin
+       main_tx_gap_inserter_source_valid <= 1'd0;
+       main_tx_gap_inserter_source_first <= 1'd0;
+       main_tx_gap_inserter_source_last <= 1'd0;
+       main_tx_gap_inserter_source_payload_data <= 8'd0;
+       main_tx_gap_inserter_source_payload_last_be <= 1'd0;
+       main_tx_gap_inserter_source_payload_error <= 1'd0;
+       main_tx_gap_inserter_counter_reset <= 1'd0;
+       builder_liteethmacgap_next_state <= 1'd0;
+       main_tx_gap_inserter_counter_ce <= 1'd0;
+       main_tx_gap_inserter_sink_ready <= 1'd0;
+       builder_liteethmacgap_next_state <= builder_liteethmacgap_state;
+       case (builder_liteethmacgap_state)
+               1'd1: begin
+                       main_tx_gap_inserter_counter_ce <= 1'd1;
+                       if ((main_tx_gap_inserter_counter == 4'd11)) begin
+                               builder_liteethmacgap_next_state <= 1'd0;
+                       end
+               end
+               default: begin
+                       main_tx_gap_inserter_counter_reset <= 1'd1;
+                       main_tx_gap_inserter_source_valid <= main_tx_gap_inserter_sink_valid;
+                       main_tx_gap_inserter_sink_ready <= main_tx_gap_inserter_source_ready;
+                       main_tx_gap_inserter_source_first <= main_tx_gap_inserter_sink_first;
+                       main_tx_gap_inserter_source_last <= main_tx_gap_inserter_sink_last;
+                       main_tx_gap_inserter_source_payload_data <= main_tx_gap_inserter_sink_payload_data;
+                       main_tx_gap_inserter_source_payload_last_be <= main_tx_gap_inserter_sink_payload_last_be;
+                       main_tx_gap_inserter_source_payload_error <= main_tx_gap_inserter_sink_payload_error;
+                       if (((main_tx_gap_inserter_sink_valid & main_tx_gap_inserter_sink_last) & main_tx_gap_inserter_sink_ready)) begin
+                               builder_liteethmacgap_next_state <= 1'd1;
+                       end
+               end
+       endcase
+end
+assign main_preamble_inserter_source_payload_last_be = main_preamble_inserter_sink_payload_last_be;
+always @(*) begin
+       builder_liteethmacpreambleinserter_next_state <= 2'd0;
+       main_preamble_inserter_source_last <= 1'd0;
+       main_preamble_inserter_source_payload_data <= 8'd0;
+       main_preamble_inserter_source_payload_error <= 1'd0;
+       main_preamble_inserter_clr_cnt <= 1'd0;
+       main_preamble_inserter_sink_ready <= 1'd0;
+       main_preamble_inserter_inc_cnt <= 1'd0;
+       main_preamble_inserter_source_valid <= 1'd0;
+       main_preamble_inserter_source_first <= 1'd0;
+       main_preamble_inserter_source_payload_data <= main_preamble_inserter_sink_payload_data;
+       builder_liteethmacpreambleinserter_next_state <= builder_liteethmacpreambleinserter_state;
+       case (builder_liteethmacpreambleinserter_state)
+               1'd1: begin
+                       main_preamble_inserter_source_valid <= 1'd1;
+                       case (main_preamble_inserter_cnt)
+                               1'd0: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[7:0];
+                               end
+                               1'd1: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[15:8];
+                               end
+                               2'd2: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[23:16];
+                               end
+                               2'd3: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[31:24];
+                               end
+                               3'd4: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[39:32];
+                               end
+                               3'd5: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[47:40];
+                               end
+                               3'd6: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[55:48];
+                               end
+                               default: begin
+                                       main_preamble_inserter_source_payload_data <= main_preamble_inserter_preamble[63:56];
+                               end
+                       endcase
+                       if ((main_preamble_inserter_cnt == 3'd7)) begin
+                               if (main_preamble_inserter_source_ready) begin
+                                       builder_liteethmacpreambleinserter_next_state <= 2'd2;
+                               end
+                       end else begin
+                               main_preamble_inserter_inc_cnt <= main_preamble_inserter_source_ready;
+                       end
+               end
+               2'd2: begin
+                       main_preamble_inserter_source_valid <= main_preamble_inserter_sink_valid;
+                       main_preamble_inserter_sink_ready <= main_preamble_inserter_source_ready;
+                       main_preamble_inserter_source_first <= main_preamble_inserter_sink_first;
+                       main_preamble_inserter_source_last <= main_preamble_inserter_sink_last;
+                       main_preamble_inserter_source_payload_error <= main_preamble_inserter_sink_payload_error;
+                       if (((main_preamble_inserter_sink_valid & main_preamble_inserter_sink_last) & main_preamble_inserter_source_ready)) begin
+                               builder_liteethmacpreambleinserter_next_state <= 1'd0;
+                       end
+               end
+               default: begin
+                       main_preamble_inserter_sink_ready <= 1'd1;
+                       main_preamble_inserter_clr_cnt <= 1'd1;
+                       if (main_preamble_inserter_sink_valid) begin
+                               main_preamble_inserter_sink_ready <= 1'd0;
+                               builder_liteethmacpreambleinserter_next_state <= 1'd1;
+                       end
+               end
+       endcase
+end
+assign main_preamble_checker_source_payload_data = main_preamble_checker_sink_payload_data;
+assign main_preamble_checker_source_payload_last_be = main_preamble_checker_sink_payload_last_be;
+always @(*) begin
+       main_preamble_checker_source_last <= 1'd0;
+       main_preamble_checker_source_payload_error <= 1'd0;
+       main_preamble_checker_source_first <= 1'd0;
+       main_preamble_checker_error <= 1'd0;
+       builder_liteethmacpreamblechecker_next_state <= 1'd0;
+       main_preamble_checker_source_valid <= 1'd0;
+       main_preamble_checker_sink_ready <= 1'd0;
+       builder_liteethmacpreamblechecker_next_state <= builder_liteethmacpreamblechecker_state;
+       case (builder_liteethmacpreamblechecker_state)
+               1'd1: begin
+                       main_preamble_checker_source_valid <= main_preamble_checker_sink_valid;
+                       main_preamble_checker_sink_ready <= main_preamble_checker_source_ready;
+                       main_preamble_checker_source_first <= main_preamble_checker_sink_first;
+                       main_preamble_checker_source_last <= main_preamble_checker_sink_last;
+                       main_preamble_checker_source_payload_error <= main_preamble_checker_sink_payload_error;
+                       if (((main_preamble_checker_source_valid & main_preamble_checker_source_last) & main_preamble_checker_source_ready)) begin
+                               builder_liteethmacpreamblechecker_next_state <= 1'd0;
+                       end
+               end
+               default: begin
+                       main_preamble_checker_sink_ready <= 1'd1;
+                       if (((main_preamble_checker_sink_valid & (~main_preamble_checker_sink_last)) & (main_preamble_checker_sink_payload_data == 8'd213))) begin
+                               builder_liteethmacpreamblechecker_next_state <= 1'd1;
+                       end
+                       if ((main_preamble_checker_sink_valid & main_preamble_checker_sink_last)) begin
+                               main_preamble_checker_error <= 1'd1;
+                       end
+               end
+       endcase
+end
+assign main_crc32_inserter_cnt_done = (main_crc32_inserter_cnt == 1'd0);
+assign main_crc32_inserter_data1 = main_crc32_inserter_data0;
+assign main_crc32_inserter_last = main_crc32_inserter_reg;
+assign main_crc32_inserter_value = (~{main_crc32_inserter_reg[0], main_crc32_inserter_reg[1], main_crc32_inserter_reg[2], main_crc32_inserter_reg[3], main_crc32_inserter_reg[4], main_crc32_inserter_reg[5], main_crc32_inserter_reg[6], main_crc32_inserter_reg[7], main_crc32_inserter_reg[8], main_crc32_inserter_reg[9], main_crc32_inserter_reg[10], main_crc32_inserter_reg[11], main_crc32_inserter_reg[12], main_crc32_inserter_reg[13], main_crc32_inserter_reg[14], main_crc32_inserter_reg[15], main_crc32_inserter_reg[16], main_crc32_inserter_reg[17], main_crc32_inserter_reg[18], main_crc32_inserter_reg[19], main_crc32_inserter_reg[20], main_crc32_inserter_reg[21], main_crc32_inserter_reg[22], main_crc32_inserter_reg[23], main_crc32_inserter_reg[24], main_crc32_inserter_reg[25], main_crc32_inserter_reg[26], main_crc32_inserter_reg[27], main_crc32_inserter_reg[28], main_crc32_inserter_reg[29], main_crc32_inserter_reg[30], main_crc32_inserter_reg[31]});
+assign main_crc32_inserter_error = (main_crc32_inserter_next != 32'd3338984827);
+always @(*) begin
+       main_crc32_inserter_next <= 32'd0;
+       main_crc32_inserter_next[0] <= (((main_crc32_inserter_last[24] ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[1] <= (((((((main_crc32_inserter_last[25] ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[2] <= (((((((((main_crc32_inserter_last[26] ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[3] <= (((((((main_crc32_inserter_last[27] ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]);
+       main_crc32_inserter_next[4] <= (((((((((main_crc32_inserter_last[28] ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[5] <= (((((((((((((main_crc32_inserter_last[29] ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[6] <= (((((((((((main_crc32_inserter_last[30] ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]);
+       main_crc32_inserter_next[7] <= (((((((((main_crc32_inserter_last[31] ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[8] <= ((((((((main_crc32_inserter_last[0] ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_data1[6]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[9] <= ((((((((main_crc32_inserter_last[1] ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_data1[6]);
+       main_crc32_inserter_next[10] <= ((((((((main_crc32_inserter_last[2] ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[11] <= ((((((((main_crc32_inserter_last[3] ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_data1[6]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[12] <= ((((((((((((main_crc32_inserter_last[4] ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_data1[6]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[13] <= ((((((((((((main_crc32_inserter_last[5] ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]);
+       main_crc32_inserter_next[14] <= ((((((((((main_crc32_inserter_last[6] ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]);
+       main_crc32_inserter_next[15] <= ((((((((main_crc32_inserter_last[7] ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]);
+       main_crc32_inserter_next[16] <= ((((((main_crc32_inserter_last[8] ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[17] <= ((((((main_crc32_inserter_last[9] ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_data1[6]);
+       main_crc32_inserter_next[18] <= ((((((main_crc32_inserter_last[10] ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]);
+       main_crc32_inserter_next[19] <= ((((main_crc32_inserter_last[11] ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]);
+       main_crc32_inserter_next[20] <= ((main_crc32_inserter_last[12] ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]);
+       main_crc32_inserter_next[21] <= ((main_crc32_inserter_last[13] ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]);
+       main_crc32_inserter_next[22] <= ((main_crc32_inserter_last[14] ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[23] <= ((((((main_crc32_inserter_last[15] ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_data1[6]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[24] <= ((((((main_crc32_inserter_last[16] ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]);
+       main_crc32_inserter_next[25] <= ((((main_crc32_inserter_last[17] ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]);
+       main_crc32_inserter_next[26] <= ((((((((main_crc32_inserter_last[18] ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]) ^ main_crc32_inserter_last[24]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_data1[7]);
+       main_crc32_inserter_next[27] <= ((((((((main_crc32_inserter_last[19] ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]) ^ main_crc32_inserter_last[25]) ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_data1[6]);
+       main_crc32_inserter_next[28] <= ((((((main_crc32_inserter_last[20] ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]) ^ main_crc32_inserter_last[26]) ^ main_crc32_inserter_data1[5]);
+       main_crc32_inserter_next[29] <= ((((((main_crc32_inserter_last[21] ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_last[30]) ^ main_crc32_inserter_data1[1]) ^ main_crc32_inserter_last[27]) ^ main_crc32_inserter_data1[4]);
+       main_crc32_inserter_next[30] <= ((((main_crc32_inserter_last[22] ^ main_crc32_inserter_last[31]) ^ main_crc32_inserter_data1[0]) ^ main_crc32_inserter_last[28]) ^ main_crc32_inserter_data1[3]);
+       main_crc32_inserter_next[31] <= ((main_crc32_inserter_last[23] ^ main_crc32_inserter_last[29]) ^ main_crc32_inserter_data1[2]);
+end
+always @(*) begin
+       main_crc32_inserter_source_valid <= 1'd0;
+       main_crc32_inserter_source_first <= 1'd0;
+       main_crc32_inserter_source_last <= 1'd0;
+       main_crc32_inserter_source_payload_data <= 8'd0;
+       builder_liteethmaccrc32inserter_next_state <= 2'd0;
+       main_crc32_inserter_source_payload_last_be <= 1'd0;
+       main_crc32_inserter_source_payload_error <= 1'd0;
+       main_crc32_inserter_data0 <= 8'd0;
+       main_crc32_inserter_is_ongoing0 <= 1'd0;
+       main_crc32_inserter_sink_ready <= 1'd0;
+       main_crc32_inserter_is_ongoing1 <= 1'd0;
+       main_crc32_inserter_ce <= 1'd0;
+       main_crc32_inserter_reset <= 1'd0;
+       builder_liteethmaccrc32inserter_next_state <= builder_liteethmaccrc32inserter_state;
+       case (builder_liteethmaccrc32inserter_state)
+               1'd1: begin
+                       main_crc32_inserter_ce <= (main_crc32_inserter_sink_valid & main_crc32_inserter_source_ready);
+                       main_crc32_inserter_data0 <= main_crc32_inserter_sink_payload_data;
+                       main_crc32_inserter_source_valid <= main_crc32_inserter_sink_valid;
+                       main_crc32_inserter_sink_ready <= main_crc32_inserter_source_ready;
+                       main_crc32_inserter_source_first <= main_crc32_inserter_sink_first;
+                       main_crc32_inserter_source_last <= main_crc32_inserter_sink_last;
+                       main_crc32_inserter_source_payload_data <= main_crc32_inserter_sink_payload_data;
+                       main_crc32_inserter_source_payload_last_be <= main_crc32_inserter_sink_payload_last_be;
+                       main_crc32_inserter_source_payload_error <= main_crc32_inserter_sink_payload_error;
+                       main_crc32_inserter_source_last <= 1'd0;
+                       if (((main_crc32_inserter_sink_valid & main_crc32_inserter_sink_last) & main_crc32_inserter_source_ready)) begin
+                               builder_liteethmaccrc32inserter_next_state <= 2'd2;
+                       end
+               end
+               2'd2: begin
+                       main_crc32_inserter_source_valid <= 1'd1;
+                       case (main_crc32_inserter_cnt)
+                               1'd0: begin
+                                       main_crc32_inserter_source_payload_data <= main_crc32_inserter_value[31:24];
+                               end
+                               1'd1: begin
+                                       main_crc32_inserter_source_payload_data <= main_crc32_inserter_value[23:16];
+                               end
+                               2'd2: begin
+                                       main_crc32_inserter_source_payload_data <= main_crc32_inserter_value[15:8];
+                               end
+                               default: begin
+                                       main_crc32_inserter_source_payload_data <= main_crc32_inserter_value[7:0];
+                               end
+                       endcase
+                       if (main_crc32_inserter_cnt_done) begin
+                               main_crc32_inserter_source_last <= 1'd1;
+                               if (main_crc32_inserter_source_ready) begin
+                                       builder_liteethmaccrc32inserter_next_state <= 1'd0;
+                               end
+                       end
+                       main_crc32_inserter_is_ongoing1 <= 1'd1;
+               end
+               default: begin
+                       main_crc32_inserter_reset <= 1'd1;
+                       main_crc32_inserter_sink_ready <= 1'd1;
+                       if (main_crc32_inserter_sink_valid) begin
+                               main_crc32_inserter_sink_ready <= 1'd0;
+                               builder_liteethmaccrc32inserter_next_state <= 1'd1;
+                       end
+                       main_crc32_inserter_is_ongoing0 <= 1'd1;
+               end
+       endcase
+end
+assign main_crc32_checker_fifo_full = (main_crc32_checker_syncfifo_level == 3'd4);
+assign main_crc32_checker_fifo_in = (main_crc32_checker_sink_sink_valid & ((~main_crc32_checker_fifo_full) | main_crc32_checker_fifo_out));
+assign main_crc32_checker_fifo_out = (main_crc32_checker_source_source_valid & main_crc32_checker_source_source_ready);
+assign main_crc32_checker_syncfifo_sink_first = main_crc32_checker_sink_sink_first;
+assign main_crc32_checker_syncfifo_sink_last = main_crc32_checker_sink_sink_last;
+assign main_crc32_checker_syncfifo_sink_payload_data = main_crc32_checker_sink_sink_payload_data;
+assign main_crc32_checker_syncfifo_sink_payload_last_be = main_crc32_checker_sink_sink_payload_last_be;
+assign main_crc32_checker_syncfifo_sink_payload_error = main_crc32_checker_sink_sink_payload_error;
+always @(*) begin
+       main_crc32_checker_syncfifo_sink_valid <= 1'd0;
+       main_crc32_checker_syncfifo_sink_valid <= main_crc32_checker_sink_sink_valid;
+       main_crc32_checker_syncfifo_sink_valid <= main_crc32_checker_fifo_in;
+end
+always @(*) begin
+       main_crc32_checker_sink_sink_ready <= 1'd0;
+       main_crc32_checker_sink_sink_ready <= main_crc32_checker_syncfifo_sink_ready;
+       main_crc32_checker_sink_sink_ready <= main_crc32_checker_fifo_in;
+end
+assign main_crc32_checker_source_source_valid = (main_crc32_checker_sink_sink_valid & main_crc32_checker_fifo_full);
+assign main_crc32_checker_source_source_last = main_crc32_checker_sink_sink_last;
+assign main_crc32_checker_syncfifo_source_ready = main_crc32_checker_fifo_out;
+assign main_crc32_checker_source_source_payload_data = main_crc32_checker_syncfifo_source_payload_data;
+assign main_crc32_checker_source_source_payload_last_be = main_crc32_checker_syncfifo_source_payload_last_be;
+always @(*) begin
+       main_crc32_checker_source_source_payload_error <= 1'd0;
+       main_crc32_checker_source_source_payload_error <= main_crc32_checker_syncfifo_source_payload_error;
+       main_crc32_checker_source_source_payload_error <= (main_crc32_checker_sink_sink_payload_error | main_crc32_checker_crc_error);
+end
+assign main_crc32_checker_error = ((main_crc32_checker_source_source_valid & main_crc32_checker_source_source_last) & main_crc32_checker_crc_error);
+assign main_crc32_checker_crc_data0 = main_crc32_checker_sink_sink_payload_data;
+assign main_crc32_checker_crc_data1 = main_crc32_checker_crc_data0;
+assign main_crc32_checker_crc_last = main_crc32_checker_crc_reg;
+assign main_crc32_checker_crc_value = (~{main_crc32_checker_crc_reg[0], main_crc32_checker_crc_reg[1], main_crc32_checker_crc_reg[2], main_crc32_checker_crc_reg[3], main_crc32_checker_crc_reg[4], main_crc32_checker_crc_reg[5], main_crc32_checker_crc_reg[6], main_crc32_checker_crc_reg[7], main_crc32_checker_crc_reg[8], main_crc32_checker_crc_reg[9], main_crc32_checker_crc_reg[10], main_crc32_checker_crc_reg[11], main_crc32_checker_crc_reg[12], main_crc32_checker_crc_reg[13], main_crc32_checker_crc_reg[14], main_crc32_checker_crc_reg[15], main_crc32_checker_crc_reg[16], main_crc32_checker_crc_reg[17], main_crc32_checker_crc_reg[18], main_crc32_checker_crc_reg[19], main_crc32_checker_crc_reg[20], main_crc32_checker_crc_reg[21], main_crc32_checker_crc_reg[22], main_crc32_checker_crc_reg[23], main_crc32_checker_crc_reg[24], main_crc32_checker_crc_reg[25], main_crc32_checker_crc_reg[26], main_crc32_checker_crc_reg[27], main_crc32_checker_crc_reg[28], main_crc32_checker_crc_reg[29], main_crc32_checker_crc_reg[30], main_crc32_checker_crc_reg[31]});
+assign main_crc32_checker_crc_error = (main_crc32_checker_crc_next != 32'd3338984827);
+always @(*) begin
+       main_crc32_checker_crc_next <= 32'd0;
+       main_crc32_checker_crc_next[0] <= (((main_crc32_checker_crc_last[24] ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[1] <= (((((((main_crc32_checker_crc_last[25] ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[2] <= (((((((((main_crc32_checker_crc_last[26] ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[3] <= (((((((main_crc32_checker_crc_last[27] ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]);
+       main_crc32_checker_crc_next[4] <= (((((((((main_crc32_checker_crc_last[28] ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[5] <= (((((((((((((main_crc32_checker_crc_last[29] ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[6] <= (((((((((((main_crc32_checker_crc_last[30] ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]);
+       main_crc32_checker_crc_next[7] <= (((((((((main_crc32_checker_crc_last[31] ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[8] <= ((((((((main_crc32_checker_crc_last[0] ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_data1[6]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[9] <= ((((((((main_crc32_checker_crc_last[1] ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_data1[6]);
+       main_crc32_checker_crc_next[10] <= ((((((((main_crc32_checker_crc_last[2] ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[11] <= ((((((((main_crc32_checker_crc_last[3] ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_data1[6]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[12] <= ((((((((((((main_crc32_checker_crc_last[4] ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_data1[6]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[13] <= ((((((((((((main_crc32_checker_crc_last[5] ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]);
+       main_crc32_checker_crc_next[14] <= ((((((((((main_crc32_checker_crc_last[6] ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]);
+       main_crc32_checker_crc_next[15] <= ((((((((main_crc32_checker_crc_last[7] ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]);
+       main_crc32_checker_crc_next[16] <= ((((((main_crc32_checker_crc_last[8] ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[17] <= ((((((main_crc32_checker_crc_last[9] ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_data1[6]);
+       main_crc32_checker_crc_next[18] <= ((((((main_crc32_checker_crc_last[10] ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]);
+       main_crc32_checker_crc_next[19] <= ((((main_crc32_checker_crc_last[11] ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]);
+       main_crc32_checker_crc_next[20] <= ((main_crc32_checker_crc_last[12] ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]);
+       main_crc32_checker_crc_next[21] <= ((main_crc32_checker_crc_last[13] ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]);
+       main_crc32_checker_crc_next[22] <= ((main_crc32_checker_crc_last[14] ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[23] <= ((((((main_crc32_checker_crc_last[15] ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_data1[6]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[24] <= ((((((main_crc32_checker_crc_last[16] ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]);
+       main_crc32_checker_crc_next[25] <= ((((main_crc32_checker_crc_last[17] ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]);
+       main_crc32_checker_crc_next[26] <= ((((((((main_crc32_checker_crc_last[18] ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]) ^ main_crc32_checker_crc_last[24]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_data1[7]);
+       main_crc32_checker_crc_next[27] <= ((((((((main_crc32_checker_crc_last[19] ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]) ^ main_crc32_checker_crc_last[25]) ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_data1[6]);
+       main_crc32_checker_crc_next[28] <= ((((((main_crc32_checker_crc_last[20] ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]) ^ main_crc32_checker_crc_last[26]) ^ main_crc32_checker_crc_data1[5]);
+       main_crc32_checker_crc_next[29] <= ((((((main_crc32_checker_crc_last[21] ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_last[30]) ^ main_crc32_checker_crc_data1[1]) ^ main_crc32_checker_crc_last[27]) ^ main_crc32_checker_crc_data1[4]);
+       main_crc32_checker_crc_next[30] <= ((((main_crc32_checker_crc_last[22] ^ main_crc32_checker_crc_last[31]) ^ main_crc32_checker_crc_data1[0]) ^ main_crc32_checker_crc_last[28]) ^ main_crc32_checker_crc_data1[3]);
+       main_crc32_checker_crc_next[31] <= ((main_crc32_checker_crc_last[23] ^ main_crc32_checker_crc_last[29]) ^ main_crc32_checker_crc_data1[2]);
+end
+assign main_crc32_checker_syncfifo_syncfifo_din = {main_crc32_checker_syncfifo_fifo_in_last, main_crc32_checker_syncfifo_fifo_in_first, main_crc32_checker_syncfifo_fifo_in_payload_error, main_crc32_checker_syncfifo_fifo_in_payload_last_be, main_crc32_checker_syncfifo_fifo_in_payload_data};
+assign {main_crc32_checker_syncfifo_fifo_out_last, main_crc32_checker_syncfifo_fifo_out_first, main_crc32_checker_syncfifo_fifo_out_payload_error, main_crc32_checker_syncfifo_fifo_out_payload_last_be, main_crc32_checker_syncfifo_fifo_out_payload_data} = main_crc32_checker_syncfifo_syncfifo_dout;
+assign main_crc32_checker_syncfifo_sink_ready = main_crc32_checker_syncfifo_syncfifo_writable;
+assign main_crc32_checker_syncfifo_syncfifo_we = main_crc32_checker_syncfifo_sink_valid;
+assign main_crc32_checker_syncfifo_fifo_in_first = main_crc32_checker_syncfifo_sink_first;
+assign main_crc32_checker_syncfifo_fifo_in_last = main_crc32_checker_syncfifo_sink_last;
+assign main_crc32_checker_syncfifo_fifo_in_payload_data = main_crc32_checker_syncfifo_sink_payload_data;
+assign main_crc32_checker_syncfifo_fifo_in_payload_last_be = main_crc32_checker_syncfifo_sink_payload_last_be;
+assign main_crc32_checker_syncfifo_fifo_in_payload_error = main_crc32_checker_syncfifo_sink_payload_error;
+assign main_crc32_checker_syncfifo_source_valid = main_crc32_checker_syncfifo_syncfifo_readable;
+assign main_crc32_checker_syncfifo_source_first = main_crc32_checker_syncfifo_fifo_out_first;
+assign main_crc32_checker_syncfifo_source_last = main_crc32_checker_syncfifo_fifo_out_last;
+assign main_crc32_checker_syncfifo_source_payload_data = main_crc32_checker_syncfifo_fifo_out_payload_data;
+assign main_crc32_checker_syncfifo_source_payload_last_be = main_crc32_checker_syncfifo_fifo_out_payload_last_be;
+assign main_crc32_checker_syncfifo_source_payload_error = main_crc32_checker_syncfifo_fifo_out_payload_error;
+assign main_crc32_checker_syncfifo_syncfifo_re = main_crc32_checker_syncfifo_source_ready;
+always @(*) begin
+       main_crc32_checker_syncfifo_wrport_adr <= 3'd0;
+       if (main_crc32_checker_syncfifo_replace) begin
+               main_crc32_checker_syncfifo_wrport_adr <= (main_crc32_checker_syncfifo_produce - 1'd1);
+       end else begin
+               main_crc32_checker_syncfifo_wrport_adr <= main_crc32_checker_syncfifo_produce;
+       end
+end
+assign main_crc32_checker_syncfifo_wrport_dat_w = main_crc32_checker_syncfifo_syncfifo_din;
+assign main_crc32_checker_syncfifo_wrport_we = (main_crc32_checker_syncfifo_syncfifo_we & (main_crc32_checker_syncfifo_syncfifo_writable | main_crc32_checker_syncfifo_replace));
+assign main_crc32_checker_syncfifo_do_read = (main_crc32_checker_syncfifo_syncfifo_readable & main_crc32_checker_syncfifo_syncfifo_re);
+assign main_crc32_checker_syncfifo_rdport_adr = main_crc32_checker_syncfifo_consume;
+assign main_crc32_checker_syncfifo_syncfifo_dout = main_crc32_checker_syncfifo_rdport_dat_r;
+assign main_crc32_checker_syncfifo_syncfifo_writable = (main_crc32_checker_syncfifo_level != 3'd5);
+assign main_crc32_checker_syncfifo_syncfifo_readable = (main_crc32_checker_syncfifo_level != 1'd0);
+always @(*) begin
+       main_crc32_checker_fifo_reset <= 1'd0;
+       main_crc32_checker_crc_ce <= 1'd0;
+       main_crc32_checker_crc_reset <= 1'd0;
+       builder_liteethmaccrc32checker_next_state <= 2'd0;
+       builder_liteethmaccrc32checker_next_state <= builder_liteethmaccrc32checker_state;
+       case (builder_liteethmaccrc32checker_state)
+               1'd1: begin
+                       if ((main_crc32_checker_sink_sink_valid & main_crc32_checker_sink_sink_ready)) begin
+                               main_crc32_checker_crc_ce <= 1'd1;
+                               builder_liteethmaccrc32checker_next_state <= 2'd2;
+                       end
+               end
+               2'd2: begin
+                       if ((main_crc32_checker_sink_sink_valid & main_crc32_checker_sink_sink_ready)) begin
+                               main_crc32_checker_crc_ce <= 1'd1;
+                               if (main_crc32_checker_sink_sink_last) begin
+                                       builder_liteethmaccrc32checker_next_state <= 1'd0;
+                               end
+                       end
+               end
+               default: begin
+                       main_crc32_checker_crc_reset <= 1'd1;
+                       main_crc32_checker_fifo_reset <= 1'd1;
+                       builder_liteethmaccrc32checker_next_state <= 1'd1;
+               end
+       endcase
+end
+assign main_ps_preamble_error_o = (main_ps_preamble_error_toggle_o ^ main_ps_preamble_error_toggle_o_r);
+assign main_ps_crc_error_o = (main_ps_crc_error_toggle_o ^ main_ps_crc_error_toggle_o_r);
+assign main_padding_inserter_counter_done = (main_padding_inserter_counter >= 6'd59);
+always @(*) begin
+       main_padding_inserter_source_valid <= 1'd0;
+       main_padding_inserter_source_first <= 1'd0;
+       main_padding_inserter_source_last <= 1'd0;
+       main_padding_inserter_source_payload_data <= 8'd0;
+       builder_liteethmacpaddinginserter_next_state <= 1'd0;
+       main_padding_inserter_source_payload_last_be <= 1'd0;
+       main_padding_inserter_source_payload_error <= 1'd0;
+       main_padding_inserter_counter_reset <= 1'd0;
+       main_padding_inserter_sink_ready <= 1'd0;
+       main_padding_inserter_counter_ce <= 1'd0;
+       builder_liteethmacpaddinginserter_next_state <= builder_liteethmacpaddinginserter_state;
+       case (builder_liteethmacpaddinginserter_state)
+               1'd1: begin
+                       main_padding_inserter_source_valid <= 1'd1;
+                       main_padding_inserter_source_last <= main_padding_inserter_counter_done;
+                       main_padding_inserter_source_payload_data <= 1'd0;
+                       if ((main_padding_inserter_source_valid & main_padding_inserter_source_ready)) begin
+                               main_padding_inserter_counter_ce <= 1'd1;
+                               if (main_padding_inserter_counter_done) begin
+                                       main_padding_inserter_counter_reset <= 1'd1;
+                                       builder_liteethmacpaddinginserter_next_state <= 1'd0;
+                               end
+                       end
+               end
+               default: begin
+                       main_padding_inserter_source_valid <= main_padding_inserter_sink_valid;
+                       main_padding_inserter_sink_ready <= main_padding_inserter_source_ready;
+                       main_padding_inserter_source_first <= main_padding_inserter_sink_first;
+                       main_padding_inserter_source_last <= main_padding_inserter_sink_last;
+                       main_padding_inserter_source_payload_data <= main_padding_inserter_sink_payload_data;
+                       main_padding_inserter_source_payload_last_be <= main_padding_inserter_sink_payload_last_be;
+                       main_padding_inserter_source_payload_error <= main_padding_inserter_sink_payload_error;
+                       if ((main_padding_inserter_source_valid & main_padding_inserter_source_ready)) begin
+                               main_padding_inserter_counter_ce <= 1'd1;
+                               if (main_padding_inserter_sink_last) begin
+                                       if ((~main_padding_inserter_counter_done)) begin
+                                               main_padding_inserter_source_last <= 1'd0;
+                                               builder_liteethmacpaddinginserter_next_state <= 1'd1;
+                                       end else begin
+                                               main_padding_inserter_counter_reset <= 1'd1;
+                                       end
+                               end
+                       end
+               end
+       endcase
+end
+assign main_padding_checker_source_valid = main_padding_checker_sink_valid;
+assign main_padding_checker_sink_ready = main_padding_checker_source_ready;
+assign main_padding_checker_source_first = main_padding_checker_sink_first;
+assign main_padding_checker_source_last = main_padding_checker_sink_last;
+assign main_padding_checker_source_payload_data = main_padding_checker_sink_payload_data;
+assign main_padding_checker_source_payload_last_be = main_padding_checker_sink_payload_last_be;
+assign main_padding_checker_source_payload_error = main_padding_checker_sink_payload_error;
+assign main_tx_last_be_source_valid = (main_tx_last_be_sink_valid & main_tx_last_be_ongoing);
+assign main_tx_last_be_source_last = main_tx_last_be_sink_payload_last_be;
+assign main_tx_last_be_source_payload_data = main_tx_last_be_sink_payload_data;
+assign main_tx_last_be_sink_ready = main_tx_last_be_source_ready;
+assign main_rx_last_be_source_valid = main_rx_last_be_sink_valid;
+assign main_rx_last_be_sink_ready = main_rx_last_be_source_ready;
+assign main_rx_last_be_source_first = main_rx_last_be_sink_first;
+assign main_rx_last_be_source_last = main_rx_last_be_sink_last;
+assign main_rx_last_be_source_payload_data = main_rx_last_be_sink_payload_data;
+assign main_rx_last_be_source_payload_error = main_rx_last_be_sink_payload_error;
+always @(*) begin
+       main_rx_last_be_source_payload_last_be <= 1'd0;
+       main_rx_last_be_source_payload_last_be <= main_rx_last_be_sink_payload_last_be;
+       main_rx_last_be_source_payload_last_be <= main_rx_last_be_sink_last;
+end
+assign main_tx_converter_converter_sink_valid = main_tx_converter_sink_valid;
+assign main_tx_converter_converter_sink_first = main_tx_converter_sink_first;
+assign main_tx_converter_converter_sink_last = main_tx_converter_sink_last;
+assign main_tx_converter_sink_ready = main_tx_converter_converter_sink_ready;
+always @(*) begin
+       main_tx_converter_converter_sink_payload_data <= 40'd0;
+       main_tx_converter_converter_sink_payload_data[7:0] <= main_tx_converter_sink_payload_data[7:0];
+       main_tx_converter_converter_sink_payload_data[8] <= main_tx_converter_sink_payload_last_be[0];
+       main_tx_converter_converter_sink_payload_data[9] <= main_tx_converter_sink_payload_error[0];
+       main_tx_converter_converter_sink_payload_data[17:10] <= main_tx_converter_sink_payload_data[15:8];
+       main_tx_converter_converter_sink_payload_data[18] <= main_tx_converter_sink_payload_last_be[1];
+       main_tx_converter_converter_sink_payload_data[19] <= main_tx_converter_sink_payload_error[1];
+       main_tx_converter_converter_sink_payload_data[27:20] <= main_tx_converter_sink_payload_data[23:16];
+       main_tx_converter_converter_sink_payload_data[28] <= main_tx_converter_sink_payload_last_be[2];
+       main_tx_converter_converter_sink_payload_data[29] <= main_tx_converter_sink_payload_error[2];
+       main_tx_converter_converter_sink_payload_data[37:30] <= main_tx_converter_sink_payload_data[31:24];
+       main_tx_converter_converter_sink_payload_data[38] <= main_tx_converter_sink_payload_last_be[3];
+       main_tx_converter_converter_sink_payload_data[39] <= main_tx_converter_sink_payload_error[3];
+end
+assign main_tx_converter_source_valid = main_tx_converter_source_source_valid;
+assign main_tx_converter_source_first = main_tx_converter_source_source_first;
+assign main_tx_converter_source_last = main_tx_converter_source_source_last;
+assign main_tx_converter_source_source_ready = main_tx_converter_source_ready;
+assign {main_tx_converter_source_payload_error, main_tx_converter_source_payload_last_be, main_tx_converter_source_payload_data} = main_tx_converter_source_source_payload_data;
+assign main_tx_converter_source_source_valid = main_tx_converter_converter_source_valid;
+assign main_tx_converter_converter_source_ready = main_tx_converter_source_source_ready;
+assign main_tx_converter_source_source_first = main_tx_converter_converter_source_first;
+assign main_tx_converter_source_source_last = main_tx_converter_converter_source_last;
+assign main_tx_converter_source_source_payload_data = main_tx_converter_converter_source_payload_data;
+assign main_tx_converter_converter_first = (main_tx_converter_converter_mux == 1'd0);
+assign main_tx_converter_converter_last = (main_tx_converter_converter_mux == 2'd3);
+assign main_tx_converter_converter_source_valid = main_tx_converter_converter_sink_valid;
+assign main_tx_converter_converter_source_first = (main_tx_converter_converter_sink_first & main_tx_converter_converter_first);
+assign main_tx_converter_converter_source_last = (main_tx_converter_converter_sink_last & main_tx_converter_converter_last);
+assign main_tx_converter_converter_sink_ready = (main_tx_converter_converter_last & main_tx_converter_converter_source_ready);
+always @(*) begin
+       main_tx_converter_converter_source_payload_data <= 10'd0;
+       case (main_tx_converter_converter_mux)
+               1'd0: begin
+                       main_tx_converter_converter_source_payload_data <= main_tx_converter_converter_sink_payload_data[9:0];
+               end
+               1'd1: begin
+                       main_tx_converter_converter_source_payload_data <= main_tx_converter_converter_sink_payload_data[19:10];
+               end
+               2'd2: begin
+                       main_tx_converter_converter_source_payload_data <= main_tx_converter_converter_sink_payload_data[29:20];
+               end
+               default: begin
+                       main_tx_converter_converter_source_payload_data <= main_tx_converter_converter_sink_payload_data[39:30];
+               end
+       endcase
+end
+assign main_tx_converter_converter_source_payload_valid_token_count = main_tx_converter_converter_last;
+assign main_rx_converter_converter_sink_valid = main_rx_converter_sink_valid;
+assign main_rx_converter_converter_sink_first = main_rx_converter_sink_first;
+assign main_rx_converter_converter_sink_last = main_rx_converter_sink_last;
+assign main_rx_converter_sink_ready = main_rx_converter_converter_sink_ready;
+assign main_rx_converter_converter_sink_payload_data = {main_rx_converter_sink_payload_error, main_rx_converter_sink_payload_last_be, main_rx_converter_sink_payload_data};
+assign main_rx_converter_source_valid = main_rx_converter_source_source_valid;
+assign main_rx_converter_source_first = main_rx_converter_source_source_first;
+assign main_rx_converter_source_last = main_rx_converter_source_source_last;
+assign main_rx_converter_source_source_ready = main_rx_converter_source_ready;
+always @(*) begin
+       main_rx_converter_source_payload_data <= 32'd0;
+       main_rx_converter_source_payload_data[7:0] <= main_rx_converter_source_source_payload_data[7:0];
+       main_rx_converter_source_payload_data[15:8] <= main_rx_converter_source_source_payload_data[17:10];
+       main_rx_converter_source_payload_data[23:16] <= main_rx_converter_source_source_payload_data[27:20];
+       main_rx_converter_source_payload_data[31:24] <= main_rx_converter_source_source_payload_data[37:30];
+end
+always @(*) begin
+       main_rx_converter_source_payload_last_be <= 4'd0;
+       main_rx_converter_source_payload_last_be[0] <= main_rx_converter_source_source_payload_data[8];
+       main_rx_converter_source_payload_last_be[1] <= main_rx_converter_source_source_payload_data[18];
+       main_rx_converter_source_payload_last_be[2] <= main_rx_converter_source_source_payload_data[28];
+       main_rx_converter_source_payload_last_be[3] <= main_rx_converter_source_source_payload_data[38];
+end
+always @(*) begin
+       main_rx_converter_source_payload_error <= 4'd0;
+       main_rx_converter_source_payload_error[0] <= main_rx_converter_source_source_payload_data[9];
+       main_rx_converter_source_payload_error[1] <= main_rx_converter_source_source_payload_data[19];
+       main_rx_converter_source_payload_error[2] <= main_rx_converter_source_source_payload_data[29];
+       main_rx_converter_source_payload_error[3] <= main_rx_converter_source_source_payload_data[39];
+end
+assign main_rx_converter_source_source_valid = main_rx_converter_converter_source_valid;
+assign main_rx_converter_converter_source_ready = main_rx_converter_source_source_ready;
+assign main_rx_converter_source_source_first = main_rx_converter_converter_source_first;
+assign main_rx_converter_source_source_last = main_rx_converter_converter_source_last;
+assign main_rx_converter_source_source_payload_data = main_rx_converter_converter_source_payload_data;
+assign main_rx_converter_converter_sink_ready = ((~main_rx_converter_converter_strobe_all) | main_rx_converter_converter_source_ready);
+assign main_rx_converter_converter_source_valid = main_rx_converter_converter_strobe_all;
+assign main_rx_converter_converter_load_part = (main_rx_converter_converter_sink_valid & main_rx_converter_converter_sink_ready);
+assign main_tx_cdc_asyncfifo_din = {main_tx_cdc_fifo_in_last, main_tx_cdc_fifo_in_first, main_tx_cdc_fifo_in_payload_error, main_tx_cdc_fifo_in_payload_last_be, main_tx_cdc_fifo_in_payload_data};
+assign {main_tx_cdc_fifo_out_last, main_tx_cdc_fifo_out_first, main_tx_cdc_fifo_out_payload_error, main_tx_cdc_fifo_out_payload_last_be, main_tx_cdc_fifo_out_payload_data} = main_tx_cdc_asyncfifo_dout;
+assign main_tx_cdc_sink_ready = main_tx_cdc_asyncfifo_writable;
+assign main_tx_cdc_asyncfifo_we = main_tx_cdc_sink_valid;
+assign main_tx_cdc_fifo_in_first = main_tx_cdc_sink_first;
+assign main_tx_cdc_fifo_in_last = main_tx_cdc_sink_last;
+assign main_tx_cdc_fifo_in_payload_data = main_tx_cdc_sink_payload_data;
+assign main_tx_cdc_fifo_in_payload_last_be = main_tx_cdc_sink_payload_last_be;
+assign main_tx_cdc_fifo_in_payload_error = main_tx_cdc_sink_payload_error;
+assign main_tx_cdc_source_valid = main_tx_cdc_asyncfifo_readable;
+assign main_tx_cdc_source_first = main_tx_cdc_fifo_out_first;
+assign main_tx_cdc_source_last = main_tx_cdc_fifo_out_last;
+assign main_tx_cdc_source_payload_data = main_tx_cdc_fifo_out_payload_data;
+assign main_tx_cdc_source_payload_last_be = main_tx_cdc_fifo_out_payload_last_be;
+assign main_tx_cdc_source_payload_error = main_tx_cdc_fifo_out_payload_error;
+assign main_tx_cdc_asyncfifo_re = main_tx_cdc_source_ready;
+assign main_tx_cdc_graycounter0_ce = (main_tx_cdc_asyncfifo_writable & main_tx_cdc_asyncfifo_we);
+assign main_tx_cdc_graycounter1_ce = (main_tx_cdc_asyncfifo_readable & main_tx_cdc_asyncfifo_re);
+assign main_tx_cdc_asyncfifo_writable = (((main_tx_cdc_graycounter0_q[6] == main_tx_cdc_consume_wdomain[6]) | (main_tx_cdc_graycounter0_q[5] == main_tx_cdc_consume_wdomain[5])) | (main_tx_cdc_graycounter0_q[4:0] != main_tx_cdc_consume_wdomain[4:0]));
+assign main_tx_cdc_asyncfifo_readable = (main_tx_cdc_graycounter1_q != main_tx_cdc_produce_rdomain);
+assign main_tx_cdc_wrport_adr = main_tx_cdc_graycounter0_q_binary[5:0];
+assign main_tx_cdc_wrport_dat_w = main_tx_cdc_asyncfifo_din;
+assign main_tx_cdc_wrport_we = main_tx_cdc_graycounter0_ce;
+assign main_tx_cdc_rdport_adr = main_tx_cdc_graycounter1_q_next_binary[5:0];
+assign main_tx_cdc_asyncfifo_dout = main_tx_cdc_rdport_dat_r;
+always @(*) begin
+       main_tx_cdc_graycounter0_q_next_binary <= 7'd0;
+       if (main_tx_cdc_graycounter0_ce) begin
+               main_tx_cdc_graycounter0_q_next_binary <= (main_tx_cdc_graycounter0_q_binary + 1'd1);
+       end else begin
+               main_tx_cdc_graycounter0_q_next_binary <= main_tx_cdc_graycounter0_q_binary;
+       end
+end
+assign main_tx_cdc_graycounter0_q_next = (main_tx_cdc_graycounter0_q_next_binary ^ main_tx_cdc_graycounter0_q_next_binary[6:1]);
+always @(*) begin
+       main_tx_cdc_graycounter1_q_next_binary <= 7'd0;
+       if (main_tx_cdc_graycounter1_ce) begin
+               main_tx_cdc_graycounter1_q_next_binary <= (main_tx_cdc_graycounter1_q_binary + 1'd1);
+       end else begin
+               main_tx_cdc_graycounter1_q_next_binary <= main_tx_cdc_graycounter1_q_binary;
+       end
+end
+assign main_tx_cdc_graycounter1_q_next = (main_tx_cdc_graycounter1_q_next_binary ^ main_tx_cdc_graycounter1_q_next_binary[6:1]);
+assign main_rx_cdc_asyncfifo_din = {main_rx_cdc_fifo_in_last, main_rx_cdc_fifo_in_first, main_rx_cdc_fifo_in_payload_error, main_rx_cdc_fifo_in_payload_last_be, main_rx_cdc_fifo_in_payload_data};
+assign {main_rx_cdc_fifo_out_last, main_rx_cdc_fifo_out_first, main_rx_cdc_fifo_out_payload_error, main_rx_cdc_fifo_out_payload_last_be, main_rx_cdc_fifo_out_payload_data} = main_rx_cdc_asyncfifo_dout;
+assign main_rx_cdc_sink_ready = main_rx_cdc_asyncfifo_writable;
+assign main_rx_cdc_asyncfifo_we = main_rx_cdc_sink_valid;
+assign main_rx_cdc_fifo_in_first = main_rx_cdc_sink_first;
+assign main_rx_cdc_fifo_in_last = main_rx_cdc_sink_last;
+assign main_rx_cdc_fifo_in_payload_data = main_rx_cdc_sink_payload_data;
+assign main_rx_cdc_fifo_in_payload_last_be = main_rx_cdc_sink_payload_last_be;
+assign main_rx_cdc_fifo_in_payload_error = main_rx_cdc_sink_payload_error;
+assign main_rx_cdc_source_valid = main_rx_cdc_asyncfifo_readable;
+assign main_rx_cdc_source_first = main_rx_cdc_fifo_out_first;
+assign main_rx_cdc_source_last = main_rx_cdc_fifo_out_last;
+assign main_rx_cdc_source_payload_data = main_rx_cdc_fifo_out_payload_data;
+assign main_rx_cdc_source_payload_last_be = main_rx_cdc_fifo_out_payload_last_be;
+assign main_rx_cdc_source_payload_error = main_rx_cdc_fifo_out_payload_error;
+assign main_rx_cdc_asyncfifo_re = main_rx_cdc_source_ready;
+assign main_rx_cdc_graycounter0_ce = (main_rx_cdc_asyncfifo_writable & main_rx_cdc_asyncfifo_we);
+assign main_rx_cdc_graycounter1_ce = (main_rx_cdc_asyncfifo_readable & main_rx_cdc_asyncfifo_re);
+assign main_rx_cdc_asyncfifo_writable = (((main_rx_cdc_graycounter0_q[6] == main_rx_cdc_consume_wdomain[6]) | (main_rx_cdc_graycounter0_q[5] == main_rx_cdc_consume_wdomain[5])) | (main_rx_cdc_graycounter0_q[4:0] != main_rx_cdc_consume_wdomain[4:0]));
+assign main_rx_cdc_asyncfifo_readable = (main_rx_cdc_graycounter1_q != main_rx_cdc_produce_rdomain);
+assign main_rx_cdc_wrport_adr = main_rx_cdc_graycounter0_q_binary[5:0];
+assign main_rx_cdc_wrport_dat_w = main_rx_cdc_asyncfifo_din;
+assign main_rx_cdc_wrport_we = main_rx_cdc_graycounter0_ce;
+assign main_rx_cdc_rdport_adr = main_rx_cdc_graycounter1_q_next_binary[5:0];
+assign main_rx_cdc_asyncfifo_dout = main_rx_cdc_rdport_dat_r;
+always @(*) begin
+       main_rx_cdc_graycounter0_q_next_binary <= 7'd0;
+       if (main_rx_cdc_graycounter0_ce) begin
+               main_rx_cdc_graycounter0_q_next_binary <= (main_rx_cdc_graycounter0_q_binary + 1'd1);
+       end else begin
+               main_rx_cdc_graycounter0_q_next_binary <= main_rx_cdc_graycounter0_q_binary;
+       end
+end
+assign main_rx_cdc_graycounter0_q_next = (main_rx_cdc_graycounter0_q_next_binary ^ main_rx_cdc_graycounter0_q_next_binary[6:1]);
+always @(*) begin
+       main_rx_cdc_graycounter1_q_next_binary <= 7'd0;
+       if (main_rx_cdc_graycounter1_ce) begin
+               main_rx_cdc_graycounter1_q_next_binary <= (main_rx_cdc_graycounter1_q_binary + 1'd1);
+       end else begin
+               main_rx_cdc_graycounter1_q_next_binary <= main_rx_cdc_graycounter1_q_binary;
+       end
+end
+assign main_rx_cdc_graycounter1_q_next = (main_rx_cdc_graycounter1_q_next_binary ^ main_rx_cdc_graycounter1_q_next_binary[6:1]);
+assign main_tx_converter_sink_valid = main_tx_cdc_source_valid;
+assign main_tx_cdc_source_ready = main_tx_converter_sink_ready;
+assign main_tx_converter_sink_first = main_tx_cdc_source_first;
+assign main_tx_converter_sink_last = main_tx_cdc_source_last;
+assign main_tx_converter_sink_payload_data = main_tx_cdc_source_payload_data;
+assign main_tx_converter_sink_payload_last_be = main_tx_cdc_source_payload_last_be;
+assign main_tx_converter_sink_payload_error = main_tx_cdc_source_payload_error;
+assign main_tx_last_be_sink_valid = main_tx_converter_source_valid;
+assign main_tx_converter_source_ready = main_tx_last_be_sink_ready;
+assign main_tx_last_be_sink_first = main_tx_converter_source_first;
+assign main_tx_last_be_sink_last = main_tx_converter_source_last;
+assign main_tx_last_be_sink_payload_data = main_tx_converter_source_payload_data;
+assign main_tx_last_be_sink_payload_last_be = main_tx_converter_source_payload_last_be;
+assign main_tx_last_be_sink_payload_error = main_tx_converter_source_payload_error;
+assign main_padding_inserter_sink_valid = main_tx_last_be_source_valid;
+assign main_tx_last_be_source_ready = main_padding_inserter_sink_ready;
+assign main_padding_inserter_sink_first = main_tx_last_be_source_first;
+assign main_padding_inserter_sink_last = main_tx_last_be_source_last;
+assign main_padding_inserter_sink_payload_data = main_tx_last_be_source_payload_data;
+assign main_padding_inserter_sink_payload_last_be = main_tx_last_be_source_payload_last_be;
+assign main_padding_inserter_sink_payload_error = main_tx_last_be_source_payload_error;
+assign main_crc32_inserter_sink_valid = main_padding_inserter_source_valid;
+assign main_padding_inserter_source_ready = main_crc32_inserter_sink_ready;
+assign main_crc32_inserter_sink_first = main_padding_inserter_source_first;
+assign main_crc32_inserter_sink_last = main_padding_inserter_source_last;
+assign main_crc32_inserter_sink_payload_data = main_padding_inserter_source_payload_data;
+assign main_crc32_inserter_sink_payload_last_be = main_padding_inserter_source_payload_last_be;
+assign main_crc32_inserter_sink_payload_error = main_padding_inserter_source_payload_error;
+assign main_preamble_inserter_sink_valid = main_crc32_inserter_source_valid;
+assign main_crc32_inserter_source_ready = main_preamble_inserter_sink_ready;
+assign main_preamble_inserter_sink_first = main_crc32_inserter_source_first;
+assign main_preamble_inserter_sink_last = main_crc32_inserter_source_last;
+assign main_preamble_inserter_sink_payload_data = main_crc32_inserter_source_payload_data;
+assign main_preamble_inserter_sink_payload_last_be = main_crc32_inserter_source_payload_last_be;
+assign main_preamble_inserter_sink_payload_error = main_crc32_inserter_source_payload_error;
+assign main_tx_gap_inserter_sink_valid = main_preamble_inserter_source_valid;
+assign main_preamble_inserter_source_ready = main_tx_gap_inserter_sink_ready;
+assign main_tx_gap_inserter_sink_first = main_preamble_inserter_source_first;
+assign main_tx_gap_inserter_sink_last = main_preamble_inserter_source_last;
+assign main_tx_gap_inserter_sink_payload_data = main_preamble_inserter_source_payload_data;
+assign main_tx_gap_inserter_sink_payload_last_be = main_preamble_inserter_source_payload_last_be;
+assign main_tx_gap_inserter_sink_payload_error = main_preamble_inserter_source_payload_error;
+assign main_maccore_ethphy_liteethphymiitx_sink_sink_valid = main_tx_gap_inserter_source_valid;
+assign main_tx_gap_inserter_source_ready = main_maccore_ethphy_liteethphymiitx_sink_sink_ready;
+assign main_maccore_ethphy_liteethphymiitx_sink_sink_first = main_tx_gap_inserter_source_first;
+assign main_maccore_ethphy_liteethphymiitx_sink_sink_last = main_tx_gap_inserter_source_last;
+assign main_maccore_ethphy_liteethphymiitx_sink_sink_payload_data = main_tx_gap_inserter_source_payload_data;
+assign main_maccore_ethphy_liteethphymiitx_sink_sink_payload_last_be = main_tx_gap_inserter_source_payload_last_be;
+assign main_maccore_ethphy_liteethphymiitx_sink_sink_payload_error = main_tx_gap_inserter_source_payload_error;
+assign main_preamble_checker_sink_valid = main_maccore_ethphy_liteethphymiirx_source_source_valid;
+assign main_maccore_ethphy_liteethphymiirx_source_source_ready = main_preamble_checker_sink_ready;
+assign main_preamble_checker_sink_first = main_maccore_ethphy_liteethphymiirx_source_source_first;
+assign main_preamble_checker_sink_last = main_maccore_ethphy_liteethphymiirx_source_source_last;
+assign main_preamble_checker_sink_payload_data = main_maccore_ethphy_liteethphymiirx_source_source_payload_data;
+assign main_preamble_checker_sink_payload_last_be = main_maccore_ethphy_liteethphymiirx_source_source_payload_last_be;
+assign main_preamble_checker_sink_payload_error = main_maccore_ethphy_liteethphymiirx_source_source_payload_error;
+assign main_crc32_checker_sink_sink_valid = main_preamble_checker_source_valid;
+assign main_preamble_checker_source_ready = main_crc32_checker_sink_sink_ready;
+assign main_crc32_checker_sink_sink_first = main_preamble_checker_source_first;
+assign main_crc32_checker_sink_sink_last = main_preamble_checker_source_last;
+assign main_crc32_checker_sink_sink_payload_data = main_preamble_checker_source_payload_data;
+assign main_crc32_checker_sink_sink_payload_last_be = main_preamble_checker_source_payload_last_be;
+assign main_crc32_checker_sink_sink_payload_error = main_preamble_checker_source_payload_error;
+assign main_padding_checker_sink_valid = main_crc32_checker_source_source_valid;
+assign main_crc32_checker_source_source_ready = main_padding_checker_sink_ready;
+assign main_padding_checker_sink_first = main_crc32_checker_source_source_first;
+assign main_padding_checker_sink_last = main_crc32_checker_source_source_last;
+assign main_padding_checker_sink_payload_data = main_crc32_checker_source_source_payload_data;
+assign main_padding_checker_sink_payload_last_be = main_crc32_checker_source_source_payload_last_be;
+assign main_padding_checker_sink_payload_error = main_crc32_checker_source_source_payload_error;
+assign main_rx_last_be_sink_valid = main_padding_checker_source_valid;
+assign main_padding_checker_source_ready = main_rx_last_be_sink_ready;
+assign main_rx_last_be_sink_first = main_padding_checker_source_first;
+assign main_rx_last_be_sink_last = main_padding_checker_source_last;
+assign main_rx_last_be_sink_payload_data = main_padding_checker_source_payload_data;
+assign main_rx_last_be_sink_payload_last_be = main_padding_checker_source_payload_last_be;
+assign main_rx_last_be_sink_payload_error = main_padding_checker_source_payload_error;
+assign main_rx_converter_sink_valid = main_rx_last_be_source_valid;
+assign main_rx_last_be_source_ready = main_rx_converter_sink_ready;
+assign main_rx_converter_sink_first = main_rx_last_be_source_first;
+assign main_rx_converter_sink_last = main_rx_last_be_source_last;
+assign main_rx_converter_sink_payload_data = main_rx_last_be_source_payload_data;
+assign main_rx_converter_sink_payload_last_be = main_rx_last_be_source_payload_last_be;
+assign main_rx_converter_sink_payload_error = main_rx_last_be_source_payload_error;
+assign main_rx_cdc_sink_valid = main_rx_converter_source_valid;
+assign main_rx_converter_source_ready = main_rx_cdc_sink_ready;
+assign main_rx_cdc_sink_first = main_rx_converter_source_first;
+assign main_rx_cdc_sink_last = main_rx_converter_source_last;
+assign main_rx_cdc_sink_payload_data = main_rx_converter_source_payload_data;
+assign main_rx_cdc_sink_payload_last_be = main_rx_converter_source_payload_last_be;
+assign main_rx_cdc_sink_payload_error = main_rx_converter_source_payload_error;
+assign main_writer_sink_sink_valid = main_sink_valid;
+assign main_sink_ready = main_writer_sink_sink_ready;
+assign main_writer_sink_sink_first = main_sink_first;
+assign main_writer_sink_sink_last = main_sink_last;
+assign main_writer_sink_sink_payload_data = main_sink_payload_data;
+assign main_writer_sink_sink_payload_last_be = main_sink_payload_last_be;
+assign main_writer_sink_sink_payload_error = main_sink_payload_error;
+assign main_source_valid = main_reader_source_source_valid;
+assign main_reader_source_source_ready = main_source_ready;
+assign main_source_first = main_reader_source_source_first;
+assign main_source_last = main_reader_source_source_last;
+assign main_source_payload_data = main_reader_source_source_payload_data;
+assign main_source_payload_last_be = main_reader_source_source_payload_last_be;
+assign main_source_payload_error = main_reader_source_source_payload_error;
+always @(*) begin
+       main_writer_inc <= 3'd0;
+       case (main_writer_sink_sink_payload_last_be)
+               1'd1: begin
+                       main_writer_inc <= 1'd1;
+               end
+               2'd2: begin
+                       main_writer_inc <= 2'd2;
+               end
+               3'd4: begin
+                       main_writer_inc <= 2'd3;
+               end
+               default: begin
+                       main_writer_inc <= 3'd4;
+               end
+       endcase
+end
+assign main_writer_fifo_sink_payload_slot = main_writer_slot;
+assign main_writer_fifo_sink_payload_length = main_writer_counter;
+assign main_writer_fifo_source_ready = main_writer_available_clear;
+assign main_writer_available_trigger = main_writer_fifo_source_valid;
+assign main_writer_slot_status = main_writer_fifo_source_payload_slot;
+assign main_writer_length_status = main_writer_fifo_source_payload_length;
+always @(*) begin
+       main_writer_memory0_we <= 1'd0;
+       main_writer_memory0_dat_w <= 32'd0;
+       main_writer_memory1_adr <= 9'd0;
+       main_writer_memory1_we <= 1'd0;
+       main_writer_memory0_adr <= 9'd0;
+       main_writer_memory1_dat_w <= 32'd0;
+       case (main_writer_slot)
+               1'd0: begin
+                       main_writer_memory0_adr <= main_writer_counter[31:2];
+                       main_writer_memory0_dat_w <= main_writer_sink_sink_payload_data;
+                       if ((main_writer_sink_sink_valid & main_writer_ongoing)) begin
+                               main_writer_memory0_we <= 4'd15;
+                       end
+               end
+               1'd1: begin
+                       main_writer_memory1_adr <= main_writer_counter[31:2];
+                       main_writer_memory1_dat_w <= main_writer_sink_sink_payload_data;
+                       if ((main_writer_sink_sink_valid & main_writer_ongoing)) begin
+                               main_writer_memory1_we <= 4'd15;
+                       end
+               end
+       endcase
+end
+assign main_writer_status_w = main_writer_available_status;
+always @(*) begin
+       main_writer_available_clear <= 1'd0;
+       if ((main_writer_pending_re & main_writer_pending_r)) begin
+               main_writer_available_clear <= 1'd1;
+       end
+end
+assign main_writer_pending_w = main_writer_available_pending;
+assign main_writer_irq = (main_writer_pending_w & main_writer_storage);
+assign main_writer_available_status = main_writer_available_trigger;
+assign main_writer_available_pending = main_writer_available_trigger;
+assign main_writer_fifo_syncfifo_din = {main_writer_fifo_fifo_in_last, main_writer_fifo_fifo_in_first, main_writer_fifo_fifo_in_payload_length, main_writer_fifo_fifo_in_payload_slot};
+assign {main_writer_fifo_fifo_out_last, main_writer_fifo_fifo_out_first, main_writer_fifo_fifo_out_payload_length, main_writer_fifo_fifo_out_payload_slot} = main_writer_fifo_syncfifo_dout;
+assign main_writer_fifo_sink_ready = main_writer_fifo_syncfifo_writable;
+assign main_writer_fifo_syncfifo_we = main_writer_fifo_sink_valid;
+assign main_writer_fifo_fifo_in_first = main_writer_fifo_sink_first;
+assign main_writer_fifo_fifo_in_last = main_writer_fifo_sink_last;
+assign main_writer_fifo_fifo_in_payload_slot = main_writer_fifo_sink_payload_slot;
+assign main_writer_fifo_fifo_in_payload_length = main_writer_fifo_sink_payload_length;
+assign main_writer_fifo_source_valid = main_writer_fifo_syncfifo_readable;
+assign main_writer_fifo_source_first = main_writer_fifo_fifo_out_first;
+assign main_writer_fifo_source_last = main_writer_fifo_fifo_out_last;
+assign main_writer_fifo_source_payload_slot = main_writer_fifo_fifo_out_payload_slot;
+assign main_writer_fifo_source_payload_length = main_writer_fifo_fifo_out_payload_length;
+assign main_writer_fifo_syncfifo_re = main_writer_fifo_source_ready;
+always @(*) begin
+       main_writer_fifo_wrport_adr <= 1'd0;
+       if (main_writer_fifo_replace) begin
+               main_writer_fifo_wrport_adr <= (main_writer_fifo_produce - 1'd1);
+       end else begin
+               main_writer_fifo_wrport_adr <= main_writer_fifo_produce;
+       end
+end
+assign main_writer_fifo_wrport_dat_w = main_writer_fifo_syncfifo_din;
+assign main_writer_fifo_wrport_we = (main_writer_fifo_syncfifo_we & (main_writer_fifo_syncfifo_writable | main_writer_fifo_replace));
+assign main_writer_fifo_do_read = (main_writer_fifo_syncfifo_readable & main_writer_fifo_syncfifo_re);
+assign main_writer_fifo_rdport_adr = main_writer_fifo_consume;
+assign main_writer_fifo_syncfifo_dout = main_writer_fifo_rdport_dat_r;
+assign main_writer_fifo_syncfifo_writable = (main_writer_fifo_level != 2'd2);
+assign main_writer_fifo_syncfifo_readable = (main_writer_fifo_level != 1'd0);
+always @(*) begin
+       main_writer_counter_t_next_value_ce <= 1'd0;
+       main_writer_ongoing <= 1'd0;
+       main_writer_errors_status_f_next_value <= 32'd0;
+       main_writer_fifo_sink_valid <= 1'd0;
+       main_writer_errors_status_f_next_value_ce <= 1'd0;
+       main_writer_slot_ce <= 1'd0;
+       builder_liteethmacsramwriter_next_state <= 3'd0;
+       main_writer_counter_t_next_value <= 32'd0;
+       builder_liteethmacsramwriter_next_state <= builder_liteethmacsramwriter_state;
+       case (builder_liteethmacsramwriter_state)
+               1'd1: begin
+                       if (main_writer_sink_sink_valid) begin
+                               if ((main_writer_counter == 11'd1530)) begin
+                                       builder_liteethmacsramwriter_next_state <= 2'd3;
+                               end else begin
+                                       main_writer_counter_t_next_value <= (main_writer_counter + main_writer_inc);
+                                       main_writer_counter_t_next_value_ce <= 1'd1;
+                                       main_writer_ongoing <= 1'd1;
+                               end
+                               if (main_writer_sink_sink_last) begin
+                                       if (((main_writer_sink_sink_payload_error & main_writer_sink_sink_payload_last_be) != 1'd0)) begin
+                                               builder_liteethmacsramwriter_next_state <= 2'd2;
+                                       end else begin
+                                               builder_liteethmacsramwriter_next_state <= 3'd4;
+                                       end
+                               end
+                       end
+               end
+               2'd2: begin
+                       main_writer_counter_t_next_value <= 1'd0;
+                       main_writer_counter_t_next_value_ce <= 1'd1;
+                       builder_liteethmacsramwriter_next_state <= 1'd0;
+               end
+               2'd3: begin
+                       if ((main_writer_sink_sink_valid & main_writer_sink_sink_last)) begin
+                               builder_liteethmacsramwriter_next_state <= 3'd4;
+                       end
+               end
+               3'd4: begin
+                       main_writer_counter_t_next_value <= 1'd0;
+                       main_writer_counter_t_next_value_ce <= 1'd1;
+                       main_writer_slot_ce <= 1'd1;
+                       main_writer_fifo_sink_valid <= 1'd1;
+                       builder_liteethmacsramwriter_next_state <= 1'd0;
+               end
+               default: begin
+                       if (main_writer_sink_sink_valid) begin
+                               if (main_writer_fifo_sink_ready) begin
+                                       main_writer_ongoing <= 1'd1;
+                                       main_writer_counter_t_next_value <= (main_writer_counter + main_writer_inc);
+                                       main_writer_counter_t_next_value_ce <= 1'd1;
+                                       builder_liteethmacsramwriter_next_state <= 1'd1;
+                               end else begin
+                                       main_writer_errors_status_f_next_value <= (main_writer_errors_status + 1'd1);
+                                       main_writer_errors_status_f_next_value_ce <= 1'd1;
+                                       builder_liteethmacsramwriter_next_state <= 2'd3;
+                               end
+                       end
+               end
+       endcase
+end
+assign main_reader_fifo_sink_valid = main_reader_start_re;
+assign main_reader_fifo_sink_payload_slot = main_reader_slot_storage;
+assign main_reader_fifo_sink_payload_length = main_reader_length_storage;
+assign main_reader_ready_status = main_reader_fifo_sink_ready;
+assign main_reader_level_status = main_reader_fifo_level;
+always @(*) begin
+       main_reader_source_source_payload_last_be <= 4'd0;
+       if (main_reader_source_source_last) begin
+               case (main_reader_fifo_source_payload_length[1:0])
+                       1'd0: begin
+                               main_reader_source_source_payload_last_be <= 4'd8;
+                       end
+                       1'd1: begin
+                               main_reader_source_source_payload_last_be <= 1'd1;
+                       end
+                       2'd2: begin
+                               main_reader_source_source_payload_last_be <= 2'd2;
+                       end
+                       2'd3: begin
+                               main_reader_source_source_payload_last_be <= 3'd4;
+                       end
+               endcase
+       end
+end
+assign main_reader_memory0_adr = main_reader_counter[10:2];
+assign main_reader_memory1_adr = main_reader_counter[10:2];
+always @(*) begin
+       main_reader_source_source_payload_data <= 32'd0;
+       case (main_reader_fifo_source_payload_slot)
+               1'd0: begin
+                       main_reader_source_source_payload_data <= main_reader_memory0_dat_r;
+               end
+               1'd1: begin
+                       main_reader_source_source_payload_data <= main_reader_memory1_dat_r;
+               end
+       endcase
+end
+assign main_reader_eventmanager_status_w = main_reader_done_status;
+always @(*) begin
+       main_reader_done_clear <= 1'd0;
+       if ((main_reader_eventmanager_pending_re & main_reader_eventmanager_pending_r)) begin
+               main_reader_done_clear <= 1'd1;
+       end
+end
+assign main_reader_eventmanager_pending_w = main_reader_done_pending;
+assign main_reader_irq = (main_reader_eventmanager_pending_w & main_reader_eventmanager_storage);
+assign main_reader_done_status = 1'd0;
+assign main_reader_fifo_syncfifo_din = {main_reader_fifo_fifo_in_last, main_reader_fifo_fifo_in_first, main_reader_fifo_fifo_in_payload_length, main_reader_fifo_fifo_in_payload_slot};
+assign {main_reader_fifo_fifo_out_last, main_reader_fifo_fifo_out_first, main_reader_fifo_fifo_out_payload_length, main_reader_fifo_fifo_out_payload_slot} = main_reader_fifo_syncfifo_dout;
+assign main_reader_fifo_sink_ready = main_reader_fifo_syncfifo_writable;
+assign main_reader_fifo_syncfifo_we = main_reader_fifo_sink_valid;
+assign main_reader_fifo_fifo_in_first = main_reader_fifo_sink_first;
+assign main_reader_fifo_fifo_in_last = main_reader_fifo_sink_last;
+assign main_reader_fifo_fifo_in_payload_slot = main_reader_fifo_sink_payload_slot;
+assign main_reader_fifo_fifo_in_payload_length = main_reader_fifo_sink_payload_length;
+assign main_reader_fifo_source_valid = main_reader_fifo_syncfifo_readable;
+assign main_reader_fifo_source_first = main_reader_fifo_fifo_out_first;
+assign main_reader_fifo_source_last = main_reader_fifo_fifo_out_last;
+assign main_reader_fifo_source_payload_slot = main_reader_fifo_fifo_out_payload_slot;
+assign main_reader_fifo_source_payload_length = main_reader_fifo_fifo_out_payload_length;
+assign main_reader_fifo_syncfifo_re = main_reader_fifo_source_ready;
+always @(*) begin
+       main_reader_fifo_wrport_adr <= 1'd0;
+       if (main_reader_fifo_replace) begin
+               main_reader_fifo_wrport_adr <= (main_reader_fifo_produce - 1'd1);
+       end else begin
+               main_reader_fifo_wrport_adr <= main_reader_fifo_produce;
+       end
+end
+assign main_reader_fifo_wrport_dat_w = main_reader_fifo_syncfifo_din;
+assign main_reader_fifo_wrport_we = (main_reader_fifo_syncfifo_we & (main_reader_fifo_syncfifo_writable | main_reader_fifo_replace));
+assign main_reader_fifo_do_read = (main_reader_fifo_syncfifo_readable & main_reader_fifo_syncfifo_re);
+assign main_reader_fifo_rdport_adr = main_reader_fifo_consume;
+assign main_reader_fifo_syncfifo_dout = main_reader_fifo_rdport_dat_r;
+assign main_reader_fifo_syncfifo_writable = (main_reader_fifo_level != 2'd2);
+assign main_reader_fifo_syncfifo_readable = (main_reader_fifo_level != 1'd0);
+always @(*) begin
+       builder_liteethmacsramreader_next_state <= 2'd0;
+       main_reader_source_source_last <= 1'd0;
+       main_reader_counter_next_value <= 11'd0;
+       main_reader_counter_next_value_ce <= 1'd0;
+       main_reader_source_source_valid <= 1'd0;
+       main_reader_done_trigger <= 1'd0;
+       main_reader_fifo_source_ready <= 1'd0;
+       builder_liteethmacsramreader_next_state <= builder_liteethmacsramreader_state;
+       case (builder_liteethmacsramreader_state)
+               1'd1: begin
+                       main_reader_source_source_valid <= 1'd1;
+                       main_reader_source_source_last <= (main_reader_counter >= (main_reader_fifo_source_payload_length - 3'd4));
+                       if (main_reader_source_source_ready) begin
+                               main_reader_counter_next_value <= (main_reader_counter + 3'd4);
+                               main_reader_counter_next_value_ce <= 1'd1;
+                               if (main_reader_source_source_last) begin
+                                       builder_liteethmacsramreader_next_state <= 2'd2;
+                               end
+                       end
+               end
+               2'd2: begin
+                       main_reader_fifo_source_ready <= 1'd1;
+                       main_reader_done_trigger <= 1'd1;
+                       builder_liteethmacsramreader_next_state <= 1'd0;
+               end
+               default: begin
+                       main_reader_counter_next_value <= 1'd0;
+                       main_reader_counter_next_value_ce <= 1'd1;
+                       if (main_reader_fifo_source_valid) begin
+                               builder_liteethmacsramreader_next_state <= 1'd1;
+                       end
+               end
+       endcase
+end
+assign main_ev_irq = (main_writer_irq | main_reader_irq);
+assign main_sram0_adr0 = main_sram0_bus_adr0[8:0];
+assign main_sram0_bus_dat_r0 = main_sram0_dat_r0;
+assign main_sram1_adr0 = main_sram1_bus_adr0[8:0];
+assign main_sram1_bus_dat_r0 = main_sram1_dat_r0;
+always @(*) begin
+       main_sram0_we <= 4'd0;
+       main_sram0_we[0] <= (((main_sram0_bus_cyc1 & main_sram0_bus_stb1) & main_sram0_bus_we1) & main_sram0_bus_sel1[0]);
+       main_sram0_we[1] <= (((main_sram0_bus_cyc1 & main_sram0_bus_stb1) & main_sram0_bus_we1) & main_sram0_bus_sel1[1]);
+       main_sram0_we[2] <= (((main_sram0_bus_cyc1 & main_sram0_bus_stb1) & main_sram0_bus_we1) & main_sram0_bus_sel1[2]);
+       main_sram0_we[3] <= (((main_sram0_bus_cyc1 & main_sram0_bus_stb1) & main_sram0_bus_we1) & main_sram0_bus_sel1[3]);
+end
+assign main_sram0_adr1 = main_sram0_bus_adr1[8:0];
+assign main_sram0_bus_dat_r1 = main_sram0_dat_r1;
+assign main_sram0_dat_w = main_sram0_bus_dat_w1;
+always @(*) begin
+       main_sram1_we <= 4'd0;
+       main_sram1_we[0] <= (((main_sram1_bus_cyc1 & main_sram1_bus_stb1) & main_sram1_bus_we1) & main_sram1_bus_sel1[0]);
+       main_sram1_we[1] <= (((main_sram1_bus_cyc1 & main_sram1_bus_stb1) & main_sram1_bus_we1) & main_sram1_bus_sel1[1]);
+       main_sram1_we[2] <= (((main_sram1_bus_cyc1 & main_sram1_bus_stb1) & main_sram1_bus_we1) & main_sram1_bus_sel1[2]);
+       main_sram1_we[3] <= (((main_sram1_bus_cyc1 & main_sram1_bus_stb1) & main_sram1_bus_we1) & main_sram1_bus_sel1[3]);
+end
+assign main_sram1_adr1 = main_sram1_bus_adr1[8:0];
+assign main_sram1_bus_dat_r1 = main_sram1_dat_r1;
+assign main_sram1_dat_w = main_sram1_bus_dat_w1;
+always @(*) begin
+       main_slave_sel <= 4'd0;
+       main_slave_sel[0] <= (main_bus_adr[10:9] == 1'd0);
+       main_slave_sel[1] <= (main_bus_adr[10:9] == 1'd1);
+       main_slave_sel[2] <= (main_bus_adr[10:9] == 2'd2);
+       main_slave_sel[3] <= (main_bus_adr[10:9] == 2'd3);
+end
+assign main_sram0_bus_adr0 = main_bus_adr;
+assign main_sram0_bus_dat_w0 = main_bus_dat_w;
+assign main_sram0_bus_sel0 = main_bus_sel;
+assign main_sram0_bus_stb0 = main_bus_stb;
+assign main_sram0_bus_we0 = main_bus_we;
+assign main_sram0_bus_cti0 = main_bus_cti;
+assign main_sram0_bus_bte0 = main_bus_bte;
+assign main_sram1_bus_adr0 = main_bus_adr;
+assign main_sram1_bus_dat_w0 = main_bus_dat_w;
+assign main_sram1_bus_sel0 = main_bus_sel;
+assign main_sram1_bus_stb0 = main_bus_stb;
+assign main_sram1_bus_we0 = main_bus_we;
+assign main_sram1_bus_cti0 = main_bus_cti;
+assign main_sram1_bus_bte0 = main_bus_bte;
+assign main_sram0_bus_adr1 = main_bus_adr;
+assign main_sram0_bus_dat_w1 = main_bus_dat_w;
+assign main_sram0_bus_sel1 = main_bus_sel;
+assign main_sram0_bus_stb1 = main_bus_stb;
+assign main_sram0_bus_we1 = main_bus_we;
+assign main_sram0_bus_cti1 = main_bus_cti;
+assign main_sram0_bus_bte1 = main_bus_bte;
+assign main_sram1_bus_adr1 = main_bus_adr;
+assign main_sram1_bus_dat_w1 = main_bus_dat_w;
+assign main_sram1_bus_sel1 = main_bus_sel;
+assign main_sram1_bus_stb1 = main_bus_stb;
+assign main_sram1_bus_we1 = main_bus_we;
+assign main_sram1_bus_cti1 = main_bus_cti;
+assign main_sram1_bus_bte1 = main_bus_bte;
+assign main_sram0_bus_cyc0 = (main_bus_cyc & main_slave_sel[0]);
+assign main_sram1_bus_cyc0 = (main_bus_cyc & main_slave_sel[1]);
+assign main_sram0_bus_cyc1 = (main_bus_cyc & main_slave_sel[2]);
+assign main_sram1_bus_cyc1 = (main_bus_cyc & main_slave_sel[3]);
+assign main_bus_ack = (((main_sram0_bus_ack0 | main_sram1_bus_ack0) | main_sram0_bus_ack1) | main_sram1_bus_ack1);
+assign main_bus_err = (((main_sram0_bus_err0 | main_sram1_bus_err0) | main_sram0_bus_err1) | main_sram1_bus_err1);
+assign main_bus_dat_r = (((({32{main_slave_sel_r[0]}} & main_sram0_bus_dat_r0) | ({32{main_slave_sel_r[1]}} & main_sram1_bus_dat_r0)) | ({32{main_slave_sel_r[2]}} & main_sram0_bus_dat_r1)) | ({32{main_slave_sel_r[3]}} & main_sram1_bus_dat_r1));
+assign builder_shared_adr = builder_array_muxed0;
+assign builder_shared_dat_w = builder_array_muxed1;
+assign builder_shared_sel = builder_array_muxed2;
+assign builder_shared_cyc = builder_array_muxed3;
+assign builder_shared_stb = builder_array_muxed4;
+assign builder_shared_we = builder_array_muxed5;
+assign builder_shared_cti = builder_array_muxed6;
+assign builder_shared_bte = builder_array_muxed7;
+assign wishbone_dat_r = builder_shared_dat_r;
+assign wishbone_ack = (builder_shared_ack & (builder_grant == 1'd0));
+assign wishbone_err = (builder_shared_err & (builder_grant == 1'd0));
+assign builder_request = {wishbone_cyc};
+assign builder_grant = 1'd0;
+always @(*) begin
+       builder_slave_sel <= 2'd0;
+       builder_slave_sel[0] <= (builder_shared_adr[29:14] == 1'd0);
+       builder_slave_sel[1] <= (builder_shared_adr[29:11] == 4'd8);
+end
+assign main_maccore_maccore_wishbone_adr = builder_shared_adr;
+assign main_maccore_maccore_wishbone_dat_w = builder_shared_dat_w;
+assign main_maccore_maccore_wishbone_sel = builder_shared_sel;
+assign main_maccore_maccore_wishbone_stb = builder_shared_stb;
+assign main_maccore_maccore_wishbone_we = builder_shared_we;
+assign main_maccore_maccore_wishbone_cti = builder_shared_cti;
+assign main_maccore_maccore_wishbone_bte = builder_shared_bte;
+assign main_bus_adr = builder_shared_adr;
+assign main_bus_dat_w = builder_shared_dat_w;
+assign main_bus_sel = builder_shared_sel;
+assign main_bus_stb = builder_shared_stb;
+assign main_bus_we = builder_shared_we;
+assign main_bus_cti = builder_shared_cti;
+assign main_bus_bte = builder_shared_bte;
+assign main_maccore_maccore_wishbone_cyc = (builder_shared_cyc & builder_slave_sel[0]);
+assign main_bus_cyc = (builder_shared_cyc & builder_slave_sel[1]);
+assign builder_shared_err = (main_maccore_maccore_wishbone_err | main_bus_err);
+assign builder_wait = ((builder_shared_stb & builder_shared_cyc) & (~builder_shared_ack));
+always @(*) begin
+       builder_error <= 1'd0;
+       builder_shared_dat_r <= 32'd0;
+       builder_shared_ack <= 1'd0;
+       builder_shared_ack <= (main_maccore_maccore_wishbone_ack | main_bus_ack);
+       builder_shared_dat_r <= (({32{builder_slave_sel_r[0]}} & main_maccore_maccore_wishbone_dat_r) | ({32{builder_slave_sel_r[1]}} & main_bus_dat_r));
+       if (builder_done) begin
+               builder_shared_dat_r <= 32'd4294967295;
+               builder_shared_ack <= 1'd1;
+               builder_error <= 1'd1;
+       end
+end
+assign builder_done = (builder_count == 1'd0);
+assign builder_csrbank0_sel = (builder_interface0_bank_bus_adr[13:9] == 1'd0);
+assign builder_csrbank0_reset0_r = builder_interface0_bank_bus_dat_w[0];
+assign builder_csrbank0_reset0_re = ((builder_csrbank0_sel & builder_interface0_bank_bus_we) & (builder_interface0_bank_bus_adr[1:0] == 1'd0));
+assign builder_csrbank0_reset0_we = ((builder_csrbank0_sel & (~builder_interface0_bank_bus_we)) & (builder_interface0_bank_bus_adr[1:0] == 1'd0));
+assign builder_csrbank0_scratch0_r = builder_interface0_bank_bus_dat_w[31:0];
+assign builder_csrbank0_scratch0_re = ((builder_csrbank0_sel & builder_interface0_bank_bus_we) & (builder_interface0_bank_bus_adr[1:0] == 1'd1));
+assign builder_csrbank0_scratch0_we = ((builder_csrbank0_sel & (~builder_interface0_bank_bus_we)) & (builder_interface0_bank_bus_adr[1:0] == 1'd1));
+assign builder_csrbank0_bus_errors_r = builder_interface0_bank_bus_dat_w[31:0];
+assign builder_csrbank0_bus_errors_re = ((builder_csrbank0_sel & builder_interface0_bank_bus_we) & (builder_interface0_bank_bus_adr[1:0] == 2'd2));
+assign builder_csrbank0_bus_errors_we = ((builder_csrbank0_sel & (~builder_interface0_bank_bus_we)) & (builder_interface0_bank_bus_adr[1:0] == 2'd2));
+assign builder_csrbank0_reset0_w = main_maccore_maccore_reset_storage;
+assign builder_csrbank0_scratch0_w = main_maccore_maccore_scratch_storage[31:0];
+assign builder_csrbank0_bus_errors_w = main_maccore_maccore_bus_errors_status[31:0];
+assign main_maccore_maccore_bus_errors_we = builder_csrbank0_bus_errors_we;
+assign builder_csrbank1_sel = (builder_interface1_bank_bus_adr[13:9] == 2'd2);
+assign builder_csrbank1_sram_writer_slot_r = builder_interface1_bank_bus_dat_w[0];
+assign builder_csrbank1_sram_writer_slot_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 1'd0));
+assign builder_csrbank1_sram_writer_slot_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 1'd0));
+assign builder_csrbank1_sram_writer_length_r = builder_interface1_bank_bus_dat_w[31:0];
+assign builder_csrbank1_sram_writer_length_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 1'd1));
+assign builder_csrbank1_sram_writer_length_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 1'd1));
+assign builder_csrbank1_sram_writer_errors_r = builder_interface1_bank_bus_dat_w[31:0];
+assign builder_csrbank1_sram_writer_errors_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 2'd2));
+assign builder_csrbank1_sram_writer_errors_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 2'd2));
+assign main_writer_status_r = builder_interface1_bank_bus_dat_w[0];
+assign main_writer_status_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 2'd3));
+assign main_writer_status_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 2'd3));
+assign main_writer_pending_r = builder_interface1_bank_bus_dat_w[0];
+assign main_writer_pending_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 3'd4));
+assign main_writer_pending_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 3'd4));
+assign builder_csrbank1_sram_writer_ev_enable0_r = builder_interface1_bank_bus_dat_w[0];
+assign builder_csrbank1_sram_writer_ev_enable0_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 3'd5));
+assign builder_csrbank1_sram_writer_ev_enable0_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 3'd5));
+assign main_reader_start_r = builder_interface1_bank_bus_dat_w[0];
+assign main_reader_start_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 3'd6));
+assign main_reader_start_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 3'd6));
+assign builder_csrbank1_sram_reader_ready_r = builder_interface1_bank_bus_dat_w[0];
+assign builder_csrbank1_sram_reader_ready_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 3'd7));
+assign builder_csrbank1_sram_reader_ready_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 3'd7));
+assign builder_csrbank1_sram_reader_level_r = builder_interface1_bank_bus_dat_w[1:0];
+assign builder_csrbank1_sram_reader_level_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd8));
+assign builder_csrbank1_sram_reader_level_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd8));
+assign builder_csrbank1_sram_reader_slot0_r = builder_interface1_bank_bus_dat_w[0];
+assign builder_csrbank1_sram_reader_slot0_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd9));
+assign builder_csrbank1_sram_reader_slot0_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd9));
+assign builder_csrbank1_sram_reader_length0_r = builder_interface1_bank_bus_dat_w[10:0];
+assign builder_csrbank1_sram_reader_length0_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd10));
+assign builder_csrbank1_sram_reader_length0_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd10));
+assign main_reader_eventmanager_status_r = builder_interface1_bank_bus_dat_w[0];
+assign main_reader_eventmanager_status_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd11));
+assign main_reader_eventmanager_status_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd11));
+assign main_reader_eventmanager_pending_r = builder_interface1_bank_bus_dat_w[0];
+assign main_reader_eventmanager_pending_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd12));
+assign main_reader_eventmanager_pending_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd12));
+assign builder_csrbank1_sram_reader_ev_enable0_r = builder_interface1_bank_bus_dat_w[0];
+assign builder_csrbank1_sram_reader_ev_enable0_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd13));
+assign builder_csrbank1_sram_reader_ev_enable0_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd13));
+assign builder_csrbank1_preamble_crc_r = builder_interface1_bank_bus_dat_w[0];
+assign builder_csrbank1_preamble_crc_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd14));
+assign builder_csrbank1_preamble_crc_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd14));
+assign builder_csrbank1_preamble_errors_r = builder_interface1_bank_bus_dat_w[31:0];
+assign builder_csrbank1_preamble_errors_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 4'd15));
+assign builder_csrbank1_preamble_errors_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 4'd15));
+assign builder_csrbank1_crc_errors_r = builder_interface1_bank_bus_dat_w[31:0];
+assign builder_csrbank1_crc_errors_re = ((builder_csrbank1_sel & builder_interface1_bank_bus_we) & (builder_interface1_bank_bus_adr[4:0] == 5'd16));
+assign builder_csrbank1_crc_errors_we = ((builder_csrbank1_sel & (~builder_interface1_bank_bus_we)) & (builder_interface1_bank_bus_adr[4:0] == 5'd16));
+assign builder_csrbank1_sram_writer_slot_w = main_writer_slot_status;
+assign main_writer_slot_we = builder_csrbank1_sram_writer_slot_we;
+assign builder_csrbank1_sram_writer_length_w = main_writer_length_status[31:0];
+assign main_writer_length_we = builder_csrbank1_sram_writer_length_we;
+assign builder_csrbank1_sram_writer_errors_w = main_writer_errors_status[31:0];
+assign main_writer_errors_we = builder_csrbank1_sram_writer_errors_we;
+assign builder_csrbank1_sram_writer_ev_enable0_w = main_writer_storage;
+assign builder_csrbank1_sram_reader_ready_w = main_reader_ready_status;
+assign main_reader_ready_we = builder_csrbank1_sram_reader_ready_we;
+assign builder_csrbank1_sram_reader_level_w = main_reader_level_status[1:0];
+assign main_reader_level_we = builder_csrbank1_sram_reader_level_we;
+assign builder_csrbank1_sram_reader_slot0_w = main_reader_slot_storage;
+assign builder_csrbank1_sram_reader_length0_w = main_reader_length_storage[10:0];
+assign builder_csrbank1_sram_reader_ev_enable0_w = main_reader_eventmanager_storage;
+assign builder_csrbank1_preamble_crc_w = main_preamble_crc_status;
+assign main_preamble_crc_we = builder_csrbank1_preamble_crc_we;
+assign builder_csrbank1_preamble_errors_w = main_preamble_errors_status[31:0];
+assign main_preamble_errors_we = builder_csrbank1_preamble_errors_we;
+assign builder_csrbank1_crc_errors_w = main_crc_errors_status[31:0];
+assign main_crc_errors_we = builder_csrbank1_crc_errors_we;
+assign builder_csrbank2_sel = (builder_interface2_bank_bus_adr[13:9] == 1'd1);
+assign builder_csrbank2_crg_reset0_r = builder_interface2_bank_bus_dat_w[0];
+assign builder_csrbank2_crg_reset0_re = ((builder_csrbank2_sel & builder_interface2_bank_bus_we) & (builder_interface2_bank_bus_adr[1:0] == 1'd0));
+assign builder_csrbank2_crg_reset0_we = ((builder_csrbank2_sel & (~builder_interface2_bank_bus_we)) & (builder_interface2_bank_bus_adr[1:0] == 1'd0));
+assign builder_csrbank2_mdio_w0_r = builder_interface2_bank_bus_dat_w[2:0];
+assign builder_csrbank2_mdio_w0_re = ((builder_csrbank2_sel & builder_interface2_bank_bus_we) & (builder_interface2_bank_bus_adr[1:0] == 1'd1));
+assign builder_csrbank2_mdio_w0_we = ((builder_csrbank2_sel & (~builder_interface2_bank_bus_we)) & (builder_interface2_bank_bus_adr[1:0] == 1'd1));
+assign builder_csrbank2_mdio_r_r = builder_interface2_bank_bus_dat_w[0];
+assign builder_csrbank2_mdio_r_re = ((builder_csrbank2_sel & builder_interface2_bank_bus_we) & (builder_interface2_bank_bus_adr[1:0] == 2'd2));
+assign builder_csrbank2_mdio_r_we = ((builder_csrbank2_sel & (~builder_interface2_bank_bus_we)) & (builder_interface2_bank_bus_adr[1:0] == 2'd2));
+assign builder_csrbank2_crg_reset0_w = main_maccore_ethphy_reset_storage;
+assign main_maccore_ethphy_mdc = main_maccore_ethphy_storage[0];
+assign main_maccore_ethphy_oe = main_maccore_ethphy_storage[1];
+assign main_maccore_ethphy_w = main_maccore_ethphy_storage[2];
+assign builder_csrbank2_mdio_w0_w = main_maccore_ethphy_storage[2:0];
+assign builder_csrbank2_mdio_r_w = main_maccore_ethphy_status;
+assign main_maccore_ethphy_we = builder_csrbank2_mdio_r_we;
+assign builder_adr = main_maccore_maccore_adr;
+assign builder_we = main_maccore_maccore_we;
+assign builder_dat_w = main_maccore_maccore_dat_w;
+assign main_maccore_maccore_dat_r = builder_dat_r;
+assign builder_interface0_bank_bus_adr = builder_adr;
+assign builder_interface1_bank_bus_adr = builder_adr;
+assign builder_interface2_bank_bus_adr = builder_adr;
+assign builder_interface0_bank_bus_we = builder_we;
+assign builder_interface1_bank_bus_we = builder_we;
+assign builder_interface2_bank_bus_we = builder_we;
+assign builder_interface0_bank_bus_dat_w = builder_dat_w;
+assign builder_interface1_bank_bus_dat_w = builder_dat_w;
+assign builder_interface2_bank_bus_dat_w = builder_dat_w;
+assign builder_dat_r = ((builder_interface0_bank_bus_dat_r | builder_interface1_bank_bus_dat_r) | builder_interface2_bank_bus_dat_r);
+always @(*) begin
+       builder_array_muxed0 <= 30'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed0 <= wishbone_adr;
+               end
+       endcase
+end
+always @(*) begin
+       builder_array_muxed1 <= 32'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed1 <= wishbone_dat_w;
+               end
+       endcase
+end
+always @(*) begin
+       builder_array_muxed2 <= 4'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed2 <= wishbone_sel;
+               end
+       endcase
+end
+always @(*) begin
+       builder_array_muxed3 <= 1'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed3 <= wishbone_cyc;
+               end
+       endcase
+end
+always @(*) begin
+       builder_array_muxed4 <= 1'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed4 <= wishbone_stb;
+               end
+       endcase
+end
+always @(*) begin
+       builder_array_muxed5 <= 1'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed5 <= wishbone_we;
+               end
+       endcase
+end
+always @(*) begin
+       builder_array_muxed6 <= 3'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed6 <= wishbone_cti;
+               end
+       endcase
+end
+always @(*) begin
+       builder_array_muxed7 <= 2'd0;
+       case (builder_grant)
+               default: begin
+                       builder_array_muxed7 <= wishbone_bte;
+               end
+       endcase
+end
+always @(*) begin
+       main_maccore_ethphy_status <= 1'd0;
+       main_maccore_ethphy_status <= main_maccore_ethphy_r;
+       main_maccore_ethphy_status <= builder_xilinxmultiregimpl0_regs1;
+end
+assign main_ps_preamble_error_toggle_o = builder_xilinxmultiregimpl1_regs1;
+assign main_ps_crc_error_toggle_o = builder_xilinxmultiregimpl2_regs1;
+assign main_tx_cdc_produce_rdomain = builder_xilinxmultiregimpl3_regs1;
+assign main_tx_cdc_consume_wdomain = builder_xilinxmultiregimpl4_regs1;
+assign main_rx_cdc_produce_rdomain = builder_xilinxmultiregimpl5_regs1;
+assign main_rx_cdc_consume_wdomain = builder_xilinxmultiregimpl6_regs1;
+
+always @(posedge eth_rx_clk) begin
+       main_maccore_ethphy_liteethphymiirx_converter_reset <= (~mii_eth_rx_dv);
+       main_maccore_ethphy_liteethphymiirx_converter_sink_valid <= 1'd1;
+       main_maccore_ethphy_liteethphymiirx_converter_sink_payload_data <= mii_eth_rx_data;
+       if (main_maccore_ethphy_liteethphymiirx_converter_converter_source_ready) begin
+               main_maccore_ethphy_liteethphymiirx_converter_converter_strobe_all <= 1'd0;
+       end
+       if (main_maccore_ethphy_liteethphymiirx_converter_converter_load_part) begin
+               if (((main_maccore_ethphy_liteethphymiirx_converter_converter_demux == 1'd1) | main_maccore_ethphy_liteethphymiirx_converter_converter_sink_last)) begin
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_demux <= 1'd0;
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_strobe_all <= 1'd1;
+               end else begin
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_demux <= (main_maccore_ethphy_liteethphymiirx_converter_converter_demux + 1'd1);
+               end
+       end
+       if ((main_maccore_ethphy_liteethphymiirx_converter_converter_source_valid & main_maccore_ethphy_liteethphymiirx_converter_converter_source_ready)) begin
+               if ((main_maccore_ethphy_liteethphymiirx_converter_converter_sink_valid & main_maccore_ethphy_liteethphymiirx_converter_converter_sink_ready)) begin
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_source_first <= main_maccore_ethphy_liteethphymiirx_converter_converter_sink_first;
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_source_last <= main_maccore_ethphy_liteethphymiirx_converter_converter_sink_last;
+               end else begin
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_source_first <= 1'd0;
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_source_last <= 1'd0;
+               end
+       end else begin
+               if ((main_maccore_ethphy_liteethphymiirx_converter_converter_sink_valid & main_maccore_ethphy_liteethphymiirx_converter_converter_sink_ready)) begin
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_source_first <= (main_maccore_ethphy_liteethphymiirx_converter_converter_sink_first | main_maccore_ethphy_liteethphymiirx_converter_converter_source_first);
+                       main_maccore_ethphy_liteethphymiirx_converter_converter_source_last <= (main_maccore_ethphy_liteethphymiirx_converter_converter_sink_last | main_maccore_ethphy_liteethphymiirx_converter_converter_source_last);
+               end
+       end
+       if (main_maccore_ethphy_liteethphymiirx_converter_converter_load_part) begin
+               case (main_maccore_ethphy_liteethphymiirx_converter_converter_demux)
+                       1'd0: begin
+                               main_maccore_ethphy_liteethphymiirx_converter_converter_source_payload_data[3:0] <= main_maccore_ethphy_liteethphymiirx_converter_converter_sink_payload_data;
+                       end
+                       1'd1: begin
+                               main_maccore_ethphy_liteethphymiirx_converter_converter_source_payload_data[7:4] <= main_maccore_ethphy_liteethphymiirx_converter_converter_sink_payload_data;
+                       end
+               endcase
+       end
+       if (main_maccore_ethphy_liteethphymiirx_converter_converter_load_part) begin
+               main_maccore_ethphy_liteethphymiirx_converter_converter_source_payload_valid_token_count <= (main_maccore_ethphy_liteethphymiirx_converter_converter_demux + 1'd1);
+       end
+       if (main_maccore_ethphy_liteethphymiirx_converter_reset) begin
+               main_maccore_ethphy_liteethphymiirx_converter_converter_demux <= 1'd0;
+               main_maccore_ethphy_liteethphymiirx_converter_converter_strobe_all <= 1'd0;
+       end
+       builder_liteethmacpreamblechecker_state <= builder_liteethmacpreamblechecker_next_state;
+       if (main_crc32_checker_crc_ce) begin
+               main_crc32_checker_crc_reg <= main_crc32_checker_crc_next;
+       end
+       if (main_crc32_checker_crc_reset) begin
+               main_crc32_checker_crc_reg <= 32'd4294967295;
+       end
+       if (((main_crc32_checker_syncfifo_syncfifo_we & main_crc32_checker_syncfifo_syncfifo_writable) & (~main_crc32_checker_syncfifo_replace))) begin
+               if ((main_crc32_checker_syncfifo_produce == 3'd4)) begin
+                       main_crc32_checker_syncfifo_produce <= 1'd0;
+               end else begin
+                       main_crc32_checker_syncfifo_produce <= (main_crc32_checker_syncfifo_produce + 1'd1);
+               end
+       end
+       if (main_crc32_checker_syncfifo_do_read) begin
+               if ((main_crc32_checker_syncfifo_consume == 3'd4)) begin
+                       main_crc32_checker_syncfifo_consume <= 1'd0;
+               end else begin
+                       main_crc32_checker_syncfifo_consume <= (main_crc32_checker_syncfifo_consume + 1'd1);
+               end
+       end
+       if (((main_crc32_checker_syncfifo_syncfifo_we & main_crc32_checker_syncfifo_syncfifo_writable) & (~main_crc32_checker_syncfifo_replace))) begin
+               if ((~main_crc32_checker_syncfifo_do_read)) begin
+                       main_crc32_checker_syncfifo_level <= (main_crc32_checker_syncfifo_level + 1'd1);
+               end
+       end else begin
+               if (main_crc32_checker_syncfifo_do_read) begin
+                       main_crc32_checker_syncfifo_level <= (main_crc32_checker_syncfifo_level - 1'd1);
+               end
+       end
+       if (main_crc32_checker_fifo_reset) begin
+               main_crc32_checker_syncfifo_level <= 3'd0;
+               main_crc32_checker_syncfifo_produce <= 3'd0;
+               main_crc32_checker_syncfifo_consume <= 3'd0;
+       end
+       builder_liteethmaccrc32checker_state <= builder_liteethmaccrc32checker_next_state;
+       if (main_ps_preamble_error_i) begin
+               main_ps_preamble_error_toggle_i <= (~main_ps_preamble_error_toggle_i);
+       end
+       if (main_ps_crc_error_i) begin
+               main_ps_crc_error_toggle_i <= (~main_ps_crc_error_toggle_i);
+       end
+       if (main_rx_converter_converter_source_ready) begin
+               main_rx_converter_converter_strobe_all <= 1'd0;
+       end
+       if (main_rx_converter_converter_load_part) begin
+               if (((main_rx_converter_converter_demux == 2'd3) | main_rx_converter_converter_sink_last)) begin
+                       main_rx_converter_converter_demux <= 1'd0;
+                       main_rx_converter_converter_strobe_all <= 1'd1;
+               end else begin
+                       main_rx_converter_converter_demux <= (main_rx_converter_converter_demux + 1'd1);
+               end
+       end
+       if ((main_rx_converter_converter_source_valid & main_rx_converter_converter_source_ready)) begin
+               if ((main_rx_converter_converter_sink_valid & main_rx_converter_converter_sink_ready)) begin
+                       main_rx_converter_converter_source_first <= main_rx_converter_converter_sink_first;
+                       main_rx_converter_converter_source_last <= main_rx_converter_converter_sink_last;
+               end else begin
+                       main_rx_converter_converter_source_first <= 1'd0;
+                       main_rx_converter_converter_source_last <= 1'd0;
+               end
+       end else begin
+               if ((main_rx_converter_converter_sink_valid & main_rx_converter_converter_sink_ready)) begin
+                       main_rx_converter_converter_source_first <= (main_rx_converter_converter_sink_first | main_rx_converter_converter_source_first);
+                       main_rx_converter_converter_source_last <= (main_rx_converter_converter_sink_last | main_rx_converter_converter_source_last);
+               end
+       end
+       if (main_rx_converter_converter_load_part) begin
+               case (main_rx_converter_converter_demux)
+                       1'd0: begin
+                               main_rx_converter_converter_source_payload_data[9:0] <= main_rx_converter_converter_sink_payload_data;
+                       end
+                       1'd1: begin
+                               main_rx_converter_converter_source_payload_data[19:10] <= main_rx_converter_converter_sink_payload_data;
+                       end
+                       2'd2: begin
+                               main_rx_converter_converter_source_payload_data[29:20] <= main_rx_converter_converter_sink_payload_data;
+                       end
+                       2'd3: begin
+                               main_rx_converter_converter_source_payload_data[39:30] <= main_rx_converter_converter_sink_payload_data;
+                       end
+               endcase
+       end
+       if (main_rx_converter_converter_load_part) begin
+               main_rx_converter_converter_source_payload_valid_token_count <= (main_rx_converter_converter_demux + 1'd1);
+       end
+       main_rx_cdc_graycounter0_q_binary <= main_rx_cdc_graycounter0_q_next_binary;
+       main_rx_cdc_graycounter0_q <= main_rx_cdc_graycounter0_q_next;
+       if (eth_rx_rst) begin
+               main_maccore_ethphy_liteethphymiirx_converter_sink_valid <= 1'd0;
+               main_maccore_ethphy_liteethphymiirx_converter_converter_demux <= 1'd0;
+               main_maccore_ethphy_liteethphymiirx_converter_converter_strobe_all <= 1'd0;
+               main_maccore_ethphy_liteethphymiirx_converter_reset <= 1'd0;
+               main_crc32_checker_crc_reg <= 32'd4294967295;
+               main_crc32_checker_syncfifo_level <= 3'd0;
+               main_crc32_checker_syncfifo_produce <= 3'd0;
+               main_crc32_checker_syncfifo_consume <= 3'd0;
+               main_rx_converter_converter_demux <= 2'd0;
+               main_rx_converter_converter_strobe_all <= 1'd0;
+               main_rx_cdc_graycounter0_q <= 7'd0;
+               main_rx_cdc_graycounter0_q_binary <= 7'd0;
+               builder_liteethmacpreamblechecker_state <= 1'd0;
+               builder_liteethmaccrc32checker_state <= 2'd0;
+       end
+       builder_xilinxmultiregimpl6_regs0 <= main_rx_cdc_graycounter1_q;
+       builder_xilinxmultiregimpl6_regs1 <= builder_xilinxmultiregimpl6_regs0;
+end
+
+always @(posedge eth_tx_clk) begin
+       mii_eth_tx_en <= main_maccore_ethphy_liteethphymiitx_converter_source_valid;
+       mii_eth_tx_data <= main_maccore_ethphy_liteethphymiitx_converter_source_payload_data;
+       if ((main_maccore_ethphy_liteethphymiitx_converter_converter_source_valid & main_maccore_ethphy_liteethphymiitx_converter_converter_source_ready)) begin
+               if (main_maccore_ethphy_liteethphymiitx_converter_converter_last) begin
+                       main_maccore_ethphy_liteethphymiitx_converter_converter_mux <= 1'd0;
+               end else begin
+                       main_maccore_ethphy_liteethphymiitx_converter_converter_mux <= (main_maccore_ethphy_liteethphymiitx_converter_converter_mux + 1'd1);
+               end
+       end
+       if (main_tx_gap_inserter_counter_reset) begin
+               main_tx_gap_inserter_counter <= 1'd0;
+       end else begin
+               if (main_tx_gap_inserter_counter_ce) begin
+                       main_tx_gap_inserter_counter <= (main_tx_gap_inserter_counter + 1'd1);
+               end
+       end
+       builder_liteethmacgap_state <= builder_liteethmacgap_next_state;
+       if (main_preamble_inserter_clr_cnt) begin
+               main_preamble_inserter_cnt <= 1'd0;
+       end else begin
+               if (main_preamble_inserter_inc_cnt) begin
+                       main_preamble_inserter_cnt <= (main_preamble_inserter_cnt + 1'd1);
+               end
+       end
+       builder_liteethmacpreambleinserter_state <= builder_liteethmacpreambleinserter_next_state;
+       if (main_crc32_inserter_is_ongoing0) begin
+               main_crc32_inserter_cnt <= 2'd3;
+       end else begin
+               if ((main_crc32_inserter_is_ongoing1 & (~main_crc32_inserter_cnt_done))) begin
+                       main_crc32_inserter_cnt <= (main_crc32_inserter_cnt - main_crc32_inserter_source_ready);
+               end
+       end
+       if (main_crc32_inserter_ce) begin
+               main_crc32_inserter_reg <= main_crc32_inserter_next;
+       end
+       if (main_crc32_inserter_reset) begin
+               main_crc32_inserter_reg <= 32'd4294967295;
+       end
+       builder_liteethmaccrc32inserter_state <= builder_liteethmaccrc32inserter_next_state;
+       if (main_padding_inserter_counter_reset) begin
+               main_padding_inserter_counter <= 1'd0;
+       end else begin
+               if (main_padding_inserter_counter_ce) begin
+                       main_padding_inserter_counter <= (main_padding_inserter_counter + 1'd1);
+               end
+       end
+       builder_liteethmacpaddinginserter_state <= builder_liteethmacpaddinginserter_next_state;
+       if ((main_tx_last_be_sink_valid & main_tx_last_be_sink_ready)) begin
+               if (main_tx_last_be_sink_last) begin
+                       main_tx_last_be_ongoing <= 1'd1;
+               end else begin
+                       if (main_tx_last_be_sink_payload_last_be) begin
+                               main_tx_last_be_ongoing <= 1'd0;
+                       end
+               end
+       end
+       if ((main_tx_converter_converter_source_valid & main_tx_converter_converter_source_ready)) begin
+               if (main_tx_converter_converter_last) begin
+                       main_tx_converter_converter_mux <= 1'd0;
+               end else begin
+                       main_tx_converter_converter_mux <= (main_tx_converter_converter_mux + 1'd1);
+               end
+       end
+       main_tx_cdc_graycounter1_q_binary <= main_tx_cdc_graycounter1_q_next_binary;
+       main_tx_cdc_graycounter1_q <= main_tx_cdc_graycounter1_q_next;
+       if (eth_tx_rst) begin
+               main_maccore_ethphy_liteethphymiitx_converter_converter_mux <= 1'd0;
+               main_crc32_inserter_reg <= 32'd4294967295;
+               main_crc32_inserter_cnt <= 2'd3;
+               main_padding_inserter_counter <= 16'd1;
+               main_tx_last_be_ongoing <= 1'd1;
+               main_tx_converter_converter_mux <= 2'd0;
+               main_tx_cdc_graycounter1_q <= 7'd0;
+               main_tx_cdc_graycounter1_q_binary <= 7'd0;
+               builder_liteethmacgap_state <= 1'd0;
+               builder_liteethmacpreambleinserter_state <= 2'd0;
+               builder_liteethmaccrc32inserter_state <= 2'd0;
+               builder_liteethmacpaddinginserter_state <= 1'd0;
+       end
+       builder_xilinxmultiregimpl3_regs0 <= main_tx_cdc_graycounter0_q;
+       builder_xilinxmultiregimpl3_regs1 <= builder_xilinxmultiregimpl3_regs0;
+end
+
+always @(posedge por_clk) begin
+       main_maccore_int_rst <= sys_reset;
+end
+
+always @(posedge sys_clk) begin
+       if ((main_maccore_maccore_bus_errors != 32'd4294967295)) begin
+               if (main_maccore_maccore_bus_error) begin
+                       main_maccore_maccore_bus_errors <= (main_maccore_maccore_bus_errors + 1'd1);
+               end
+       end
+       builder_state <= builder_next_state;
+       if (main_maccore_ethphy_counter_ce) begin
+               main_maccore_ethphy_counter <= (main_maccore_ethphy_counter + 1'd1);
+       end
+       if (main_ps_preamble_error_o) begin
+               main_preamble_errors_status <= (main_preamble_errors_status + 1'd1);
+       end
+       if (main_ps_crc_error_o) begin
+               main_crc_errors_status <= (main_crc_errors_status + 1'd1);
+       end
+       main_ps_preamble_error_toggle_o_r <= main_ps_preamble_error_toggle_o;
+       main_ps_crc_error_toggle_o_r <= main_ps_crc_error_toggle_o;
+       main_tx_cdc_graycounter0_q_binary <= main_tx_cdc_graycounter0_q_next_binary;
+       main_tx_cdc_graycounter0_q <= main_tx_cdc_graycounter0_q_next;
+       main_rx_cdc_graycounter1_q_binary <= main_rx_cdc_graycounter1_q_next_binary;
+       main_rx_cdc_graycounter1_q <= main_rx_cdc_graycounter1_q_next;
+       if (main_writer_slot_ce) begin
+               main_writer_slot <= (main_writer_slot + 1'd1);
+       end
+       if (((main_writer_fifo_syncfifo_we & main_writer_fifo_syncfifo_writable) & (~main_writer_fifo_replace))) begin
+               main_writer_fifo_produce <= (main_writer_fifo_produce + 1'd1);
+       end
+       if (main_writer_fifo_do_read) begin
+               main_writer_fifo_consume <= (main_writer_fifo_consume + 1'd1);
+       end
+       if (((main_writer_fifo_syncfifo_we & main_writer_fifo_syncfifo_writable) & (~main_writer_fifo_replace))) begin
+               if ((~main_writer_fifo_do_read)) begin
+                       main_writer_fifo_level <= (main_writer_fifo_level + 1'd1);
+               end
+       end else begin
+               if (main_writer_fifo_do_read) begin
+                       main_writer_fifo_level <= (main_writer_fifo_level - 1'd1);
+               end
+       end
+       builder_liteethmacsramwriter_state <= builder_liteethmacsramwriter_next_state;
+       if (main_writer_counter_t_next_value_ce) begin
+               main_writer_counter <= main_writer_counter_t_next_value;
+       end
+       if (main_writer_errors_status_f_next_value_ce) begin
+               main_writer_errors_status <= main_writer_errors_status_f_next_value;
+       end
+       if (main_reader_done_clear) begin
+               main_reader_done_pending <= 1'd0;
+       end
+       if (main_reader_done_trigger) begin
+               main_reader_done_pending <= 1'd1;
+       end
+       if (((main_reader_fifo_syncfifo_we & main_reader_fifo_syncfifo_writable) & (~main_reader_fifo_replace))) begin
+               main_reader_fifo_produce <= (main_reader_fifo_produce + 1'd1);
+       end
+       if (main_reader_fifo_do_read) begin
+               main_reader_fifo_consume <= (main_reader_fifo_consume + 1'd1);
+       end
+       if (((main_reader_fifo_syncfifo_we & main_reader_fifo_syncfifo_writable) & (~main_reader_fifo_replace))) begin
+               if ((~main_reader_fifo_do_read)) begin
+                       main_reader_fifo_level <= (main_reader_fifo_level + 1'd1);
+               end
+       end else begin
+               if (main_reader_fifo_do_read) begin
+                       main_reader_fifo_level <= (main_reader_fifo_level - 1'd1);
+               end
+       end
+       builder_liteethmacsramreader_state <= builder_liteethmacsramreader_next_state;
+       if (main_reader_counter_next_value_ce) begin
+               main_reader_counter <= main_reader_counter_next_value;
+       end
+       main_sram0_bus_ack0 <= 1'd0;
+       if (((main_sram0_bus_cyc0 & main_sram0_bus_stb0) & (~main_sram0_bus_ack0))) begin
+               main_sram0_bus_ack0 <= 1'd1;
+       end
+       main_sram1_bus_ack0 <= 1'd0;
+       if (((main_sram1_bus_cyc0 & main_sram1_bus_stb0) & (~main_sram1_bus_ack0))) begin
+               main_sram1_bus_ack0 <= 1'd1;
+       end
+       main_sram0_bus_ack1 <= 1'd0;
+       if (((main_sram0_bus_cyc1 & main_sram0_bus_stb1) & (~main_sram0_bus_ack1))) begin
+               main_sram0_bus_ack1 <= 1'd1;
+       end
+       main_sram1_bus_ack1 <= 1'd0;
+       if (((main_sram1_bus_cyc1 & main_sram1_bus_stb1) & (~main_sram1_bus_ack1))) begin
+               main_sram1_bus_ack1 <= 1'd1;
+       end
+       main_slave_sel_r <= main_slave_sel;
+       builder_slave_sel_r <= builder_slave_sel;
+       if (builder_wait) begin
+               if ((~builder_done)) begin
+                       builder_count <= (builder_count - 1'd1);
+               end
+       end else begin
+               builder_count <= 20'd1000000;
+       end
+       builder_interface0_bank_bus_dat_r <= 1'd0;
+       if (builder_csrbank0_sel) begin
+               case (builder_interface0_bank_bus_adr[1:0])
+                       1'd0: begin
+                               builder_interface0_bank_bus_dat_r <= builder_csrbank0_reset0_w;
+                       end
+                       1'd1: begin
+                               builder_interface0_bank_bus_dat_r <= builder_csrbank0_scratch0_w;
+                       end
+                       2'd2: begin
+                               builder_interface0_bank_bus_dat_r <= builder_csrbank0_bus_errors_w;
+                       end
+               endcase
+       end
+       if (builder_csrbank0_reset0_re) begin
+               main_maccore_maccore_reset_storage <= builder_csrbank0_reset0_r;
+       end
+       main_maccore_maccore_reset_re <= builder_csrbank0_reset0_re;
+       if (builder_csrbank0_scratch0_re) begin
+               main_maccore_maccore_scratch_storage[31:0] <= builder_csrbank0_scratch0_r;
+       end
+       main_maccore_maccore_scratch_re <= builder_csrbank0_scratch0_re;
+       builder_interface1_bank_bus_dat_r <= 1'd0;
+       if (builder_csrbank1_sel) begin
+               case (builder_interface1_bank_bus_adr[4:0])
+                       1'd0: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_writer_slot_w;
+                       end
+                       1'd1: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_writer_length_w;
+                       end
+                       2'd2: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_writer_errors_w;
+                       end
+                       2'd3: begin
+                               builder_interface1_bank_bus_dat_r <= main_writer_status_w;
+                       end
+                       3'd4: begin
+                               builder_interface1_bank_bus_dat_r <= main_writer_pending_w;
+                       end
+                       3'd5: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_writer_ev_enable0_w;
+                       end
+                       3'd6: begin
+                               builder_interface1_bank_bus_dat_r <= main_reader_start_w;
+                       end
+                       3'd7: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_reader_ready_w;
+                       end
+                       4'd8: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_reader_level_w;
+                       end
+                       4'd9: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_reader_slot0_w;
+                       end
+                       4'd10: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_reader_length0_w;
+                       end
+                       4'd11: begin
+                               builder_interface1_bank_bus_dat_r <= main_reader_eventmanager_status_w;
+                       end
+                       4'd12: begin
+                               builder_interface1_bank_bus_dat_r <= main_reader_eventmanager_pending_w;
+                       end
+                       4'd13: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_sram_reader_ev_enable0_w;
+                       end
+                       4'd14: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_preamble_crc_w;
+                       end
+                       4'd15: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_preamble_errors_w;
+                       end
+                       5'd16: begin
+                               builder_interface1_bank_bus_dat_r <= builder_csrbank1_crc_errors_w;
+                       end
+               endcase
+       end
+       if (builder_csrbank1_sram_writer_ev_enable0_re) begin
+               main_writer_storage <= builder_csrbank1_sram_writer_ev_enable0_r;
+       end
+       main_writer_re <= builder_csrbank1_sram_writer_ev_enable0_re;
+       if (builder_csrbank1_sram_reader_slot0_re) begin
+               main_reader_slot_storage <= builder_csrbank1_sram_reader_slot0_r;
+       end
+       main_reader_slot_re <= builder_csrbank1_sram_reader_slot0_re;
+       if (builder_csrbank1_sram_reader_length0_re) begin
+               main_reader_length_storage[10:0] <= builder_csrbank1_sram_reader_length0_r;
+       end
+       main_reader_length_re <= builder_csrbank1_sram_reader_length0_re;
+       if (builder_csrbank1_sram_reader_ev_enable0_re) begin
+               main_reader_eventmanager_storage <= builder_csrbank1_sram_reader_ev_enable0_r;
+       end
+       main_reader_eventmanager_re <= builder_csrbank1_sram_reader_ev_enable0_re;
+       builder_interface2_bank_bus_dat_r <= 1'd0;
+       if (builder_csrbank2_sel) begin
+               case (builder_interface2_bank_bus_adr[1:0])
+                       1'd0: begin
+                               builder_interface2_bank_bus_dat_r <= builder_csrbank2_crg_reset0_w;
+                       end
+                       1'd1: begin
+                               builder_interface2_bank_bus_dat_r <= builder_csrbank2_mdio_w0_w;
+                       end
+                       2'd2: begin
+                               builder_interface2_bank_bus_dat_r <= builder_csrbank2_mdio_r_w;
+                       end
+               endcase
+       end
+       if (builder_csrbank2_crg_reset0_re) begin
+               main_maccore_ethphy_reset_storage <= builder_csrbank2_crg_reset0_r;
+       end
+       main_maccore_ethphy_reset_re <= builder_csrbank2_crg_reset0_re;
+       if (builder_csrbank2_mdio_w0_re) begin
+               main_maccore_ethphy_storage[2:0] <= builder_csrbank2_mdio_w0_r;
+       end
+       main_maccore_ethphy_re <= builder_csrbank2_mdio_w0_re;
+       if (sys_rst) begin
+               main_maccore_maccore_reset_storage <= 1'd0;
+               main_maccore_maccore_reset_re <= 1'd0;
+               main_maccore_maccore_scratch_storage <= 32'd305419896;
+               main_maccore_maccore_scratch_re <= 1'd0;
+               main_maccore_maccore_bus_errors <= 32'd0;
+               main_maccore_ethphy_reset_storage <= 1'd0;
+               main_maccore_ethphy_reset_re <= 1'd0;
+               main_maccore_ethphy_counter <= 9'd0;
+               main_maccore_ethphy_storage <= 3'd0;
+               main_maccore_ethphy_re <= 1'd0;
+               main_preamble_errors_status <= 32'd0;
+               main_crc_errors_status <= 32'd0;
+               main_tx_cdc_graycounter0_q <= 7'd0;
+               main_tx_cdc_graycounter0_q_binary <= 7'd0;
+               main_rx_cdc_graycounter1_q <= 7'd0;
+               main_rx_cdc_graycounter1_q_binary <= 7'd0;
+               main_writer_errors_status <= 32'd0;
+               main_writer_storage <= 1'd0;
+               main_writer_re <= 1'd0;
+               main_writer_counter <= 32'd0;
+               main_writer_slot <= 1'd0;
+               main_writer_fifo_level <= 2'd0;
+               main_writer_fifo_produce <= 1'd0;
+               main_writer_fifo_consume <= 1'd0;
+               main_reader_slot_re <= 1'd0;
+               main_reader_length_re <= 1'd0;
+               main_reader_done_pending <= 1'd0;
+               main_reader_eventmanager_storage <= 1'd0;
+               main_reader_eventmanager_re <= 1'd0;
+               main_reader_fifo_level <= 2'd0;
+               main_reader_fifo_produce <= 1'd0;
+               main_reader_fifo_consume <= 1'd0;
+               main_reader_counter <= 11'd0;
+               main_sram0_bus_ack0 <= 1'd0;
+               main_sram1_bus_ack0 <= 1'd0;
+               main_sram0_bus_ack1 <= 1'd0;
+               main_sram1_bus_ack1 <= 1'd0;
+               main_slave_sel_r <= 4'd0;
+               builder_state <= 1'd0;
+               builder_liteethmacsramwriter_state <= 3'd0;
+               builder_liteethmacsramreader_state <= 2'd0;
+               builder_slave_sel_r <= 2'd0;
+               builder_count <= 20'd1000000;
+       end
+       builder_xilinxmultiregimpl0_regs0 <= main_maccore_ethphy_data_r;
+       builder_xilinxmultiregimpl0_regs1 <= builder_xilinxmultiregimpl0_regs0;
+       builder_xilinxmultiregimpl1_regs0 <= main_ps_preamble_error_toggle_i;
+       builder_xilinxmultiregimpl1_regs1 <= builder_xilinxmultiregimpl1_regs0;
+       builder_xilinxmultiregimpl2_regs0 <= main_ps_crc_error_toggle_i;
+       builder_xilinxmultiregimpl2_regs1 <= builder_xilinxmultiregimpl2_regs0;
+       builder_xilinxmultiregimpl4_regs0 <= main_tx_cdc_graycounter1_q;
+       builder_xilinxmultiregimpl4_regs1 <= builder_xilinxmultiregimpl4_regs0;
+       builder_xilinxmultiregimpl5_regs0 <= main_rx_cdc_graycounter0_q;
+       builder_xilinxmultiregimpl5_regs1 <= builder_xilinxmultiregimpl5_regs0;
+end
+
+assign mii_eth_mdio = main_maccore_ethphy_data_oe ? main_maccore_ethphy_data_w : 1'bz;
+assign main_maccore_ethphy_data_r = mii_eth_mdio;
+
+reg [11:0] storage[0:4];
+reg [11:0] memdat;
+always @(posedge eth_rx_clk) begin
+       if (main_crc32_checker_syncfifo_wrport_we)
+               storage[main_crc32_checker_syncfifo_wrport_adr] <= main_crc32_checker_syncfifo_wrport_dat_w;
+       memdat <= storage[main_crc32_checker_syncfifo_wrport_adr];
+end
+
+always @(posedge eth_rx_clk) begin
+end
+
+assign main_crc32_checker_syncfifo_wrport_dat_r = memdat;
+assign main_crc32_checker_syncfifo_rdport_dat_r = storage[main_crc32_checker_syncfifo_rdport_adr];
+
+reg [41:0] storage_1[0:63];
+reg [5:0] memadr;
+reg [5:0] memadr_1;
+always @(posedge sys_clk) begin
+       if (main_tx_cdc_wrport_we)
+               storage_1[main_tx_cdc_wrport_adr] <= main_tx_cdc_wrport_dat_w;
+       memadr <= main_tx_cdc_wrport_adr;
+end
+
+always @(posedge eth_tx_clk) begin
+       memadr_1 <= main_tx_cdc_rdport_adr;
+end
+
+assign main_tx_cdc_wrport_dat_r = storage_1[memadr];
+assign main_tx_cdc_rdport_dat_r = storage_1[memadr_1];
+
+reg [41:0] storage_2[0:63];
+reg [5:0] memadr_2;
+reg [5:0] memadr_3;
+always @(posedge eth_rx_clk) begin
+       if (main_rx_cdc_wrport_we)
+               storage_2[main_rx_cdc_wrport_adr] <= main_rx_cdc_wrport_dat_w;
+       memadr_2 <= main_rx_cdc_wrport_adr;
+end
+
+always @(posedge sys_clk) begin
+       memadr_3 <= main_rx_cdc_rdport_adr;
+end
+
+assign main_rx_cdc_wrport_dat_r = storage_2[memadr_2];
+assign main_rx_cdc_rdport_dat_r = storage_2[memadr_3];
+
+reg [34:0] storage_3[0:1];
+reg [34:0] memdat_1;
+always @(posedge sys_clk) begin
+       if (main_writer_fifo_wrport_we)
+               storage_3[main_writer_fifo_wrport_adr] <= main_writer_fifo_wrport_dat_w;
+       memdat_1 <= storage_3[main_writer_fifo_wrport_adr];
+end
+
+always @(posedge sys_clk) begin
+end
+
+assign main_writer_fifo_wrport_dat_r = memdat_1;
+assign main_writer_fifo_rdport_dat_r = storage_3[main_writer_fifo_rdport_adr];
+
+reg [31:0] mem[0:381];
+reg [8:0] memadr_4;
+reg [31:0] memdat_2;
+always @(posedge sys_clk) begin
+       if (main_writer_memory0_we)
+               mem[main_writer_memory0_adr] <= main_writer_memory0_dat_w;
+       memadr_4 <= main_writer_memory0_adr;
+end
+
+always @(posedge sys_clk) begin
+       memdat_2 <= mem[main_sram0_adr0];
+end
+
+assign main_writer_memory0_dat_r = mem[memadr_4];
+assign main_sram0_dat_r0 = memdat_2;
+
+reg [31:0] mem_1[0:381];
+reg [8:0] memadr_5;
+reg [31:0] memdat_3;
+always @(posedge sys_clk) begin
+       if (main_writer_memory1_we)
+               mem_1[main_writer_memory1_adr] <= main_writer_memory1_dat_w;
+       memadr_5 <= main_writer_memory1_adr;
+end
+
+always @(posedge sys_clk) begin
+       memdat_3 <= mem_1[main_sram1_adr0];
+end
+
+assign main_writer_memory1_dat_r = mem_1[memadr_5];
+assign main_sram1_dat_r0 = memdat_3;
+
+reg [13:0] storage_4[0:1];
+reg [13:0] memdat_4;
+always @(posedge sys_clk) begin
+       if (main_reader_fifo_wrport_we)
+               storage_4[main_reader_fifo_wrport_adr] <= main_reader_fifo_wrport_dat_w;
+       memdat_4 <= storage_4[main_reader_fifo_wrport_adr];
+end
+
+always @(posedge sys_clk) begin
+end
+
+assign main_reader_fifo_wrport_dat_r = memdat_4;
+assign main_reader_fifo_rdport_dat_r = storage_4[main_reader_fifo_rdport_adr];
+
+reg [31:0] mem_2[0:381];
+reg [8:0] memadr_6;
+always @(posedge sys_clk) begin
+end
+
+always @(posedge sys_clk) begin
+       if (main_sram0_we[0])
+               mem_2[main_sram0_adr1][7:0] <= main_sram0_dat_w[7:0];
+       if (main_sram0_we[1])
+               mem_2[main_sram0_adr1][15:8] <= main_sram0_dat_w[15:8];
+       if (main_sram0_we[2])
+               mem_2[main_sram0_adr1][23:16] <= main_sram0_dat_w[23:16];
+       if (main_sram0_we[3])
+               mem_2[main_sram0_adr1][31:24] <= main_sram0_dat_w[31:24];
+       memadr_6 <= main_sram0_adr1;
+end
+
+assign main_reader_memory0_dat_r = mem_2[main_reader_memory0_adr];
+assign main_sram0_dat_r1 = mem_2[memadr_6];
+
+reg [31:0] mem_3[0:381];
+reg [8:0] memadr_7;
+always @(posedge sys_clk) begin
+end
+
+always @(posedge sys_clk) begin
+       if (main_sram1_we[0])
+               mem_3[main_sram1_adr1][7:0] <= main_sram1_dat_w[7:0];
+       if (main_sram1_we[1])
+               mem_3[main_sram1_adr1][15:8] <= main_sram1_dat_w[15:8];
+       if (main_sram1_we[2])
+               mem_3[main_sram1_adr1][23:16] <= main_sram1_dat_w[23:16];
+       if (main_sram1_we[3])
+               mem_3[main_sram1_adr1][31:24] <= main_sram1_dat_w[31:24];
+       memadr_7 <= main_sram1_adr1;
+end
+
+assign main_reader_memory1_dat_r = mem_3[main_reader_memory1_adr];
+assign main_sram1_dat_r1 = mem_3[memadr_7];
+
+(* ars_ff1 = "true", async_reg = "true" *) FDPE #(
+       .INIT(1'd1)
+) FDPE (
+       .C(eth_tx_clk),
+       .CE(1'd1),
+       .D(1'd0),
+       .PRE(main_maccore_ethphy_reset0),
+       .Q(builder_rst_meta0)
+);
+
+(* ars_ff2 = "true", async_reg = "true" *) FDPE #(
+       .INIT(1'd1)
+) FDPE_1 (
+       .C(eth_tx_clk),
+       .CE(1'd1),
+       .D(builder_rst_meta0),
+       .PRE(main_maccore_ethphy_reset0),
+       .Q(eth_tx_rst)
+);
+
+(* ars_ff1 = "true", async_reg = "true" *) FDPE #(
+       .INIT(1'd1)
+) FDPE_2 (
+       .C(eth_rx_clk),
+       .CE(1'd1),
+       .D(1'd0),
+       .PRE(main_maccore_ethphy_reset0),
+       .Q(builder_rst_meta1)
+);
+
+(* ars_ff2 = "true", async_reg = "true" *) FDPE #(
+       .INIT(1'd1)
+) FDPE_3 (
+       .C(eth_rx_clk),
+       .CE(1'd1),
+       .D(builder_rst_meta1),
+       .PRE(main_maccore_ethphy_reset0),
+       .Q(eth_rx_rst)
+);
+
+endmodule
diff --git a/liteeth/liteeth.core b/liteeth/liteeth.core
new file mode 100644 (file)
index 0000000..6a5c719
--- /dev/null
@@ -0,0 +1,15 @@
+CAPI=2:
+
+name : :microwatt:liteeth:0
+
+generators:
+  liteeth_gen:
+    interpreter: python3
+    command: fusesoc-add-files.py
+    description: Generate a liteeth ethernet controller
+    usage: |
+      liteeth_gen adds the pre-generated LiteX LiteEth memory controller
+      based on the board type.
+
+      Parameters:
+        board: The board type (arty)
index 83d776200d039dcc1437f26ac58d0ae3278bbb1d..4f9820ab2d0969aa481068d57c46bcb650607704 100644 (file)
@@ -100,6 +100,9 @@ filesets:
   litedram:
       depend : [":microwatt:litedram"]
 
+  liteeth:
+      depend : [":microwatt:liteeth"]
+
 targets:
   nexys_a7:
     default_tool: vivado
@@ -141,7 +144,7 @@ targets:
       - no_bram
       - spi_flash_offset=10485760
       - log_length=2048
-    generate: [dram_nexys_video]
+    generate: [litedram_nexys_video]
     tools:
       vivado: {part : xc7a200tsbg484-1}
     toplevel : toplevel
@@ -163,16 +166,17 @@ targets:
 
   arty_a7-35:
     default_tool: vivado
-    filesets: [core, arty_a7, soc, fpga, debug_xilinx, litedram, xilinx_specific]
+    filesets: [core, arty_a7, soc, fpga, debug_xilinx, litedram, liteeth, xilinx_specific]
     parameters :
       - memory_size
       - ram_init_file
       - use_litedram=true
+      - use_liteeth=true
       - disable_flatten_core
       - no_bram
       - spi_flash_offset=3145728
       - log_length=512
-    generate: [dram_arty]
+    generate: [litedram_arty, liteeth_arty]
     tools:
       vivado: {part : xc7a35ticsg324-1L}
     toplevel : toplevel
@@ -194,16 +198,17 @@ targets:
 
   arty_a7-100:
     default_tool: vivado
-    filesets: [core, arty_a7, soc, fpga, debug_xilinx, litedram, xilinx_specific]
+    filesets: [core, arty_a7, soc, fpga, debug_xilinx, litedram, liteeth, xilinx_specific]
     parameters:
       - memory_size
       - ram_init_file
       - use_litedram=true
+      - use_liteeth=true
       - disable_flatten_core
       - no_bram
       - spi_flash_offset=4194304
       - log_length=2048
-    generate: [dram_arty]
+    generate: [litedram_arty, liteeth_arty]
     tools:
       vivado: {part : xc7a100ticsg324-1L}
     toplevel : toplevel
@@ -230,11 +235,15 @@ targets:
     toplevel: core
 
 generate:
-  dram_arty:
+  litedram_arty:
     generator: litedram_gen
     parameters: {board : arty}
 
-  dram_nexys_video:
+  liteeth_arty:
+    generator: liteeth_gen
+    parameters: {board : arty}
+
+  litedram_nexys_video:
     generator: litedram_gen
     parameters: {board : nexys-video}
 
@@ -279,6 +288,12 @@ parameters:
     paramtype   : generic
     default     : false
 
+  use_liteeth:
+    datatype    : bool
+    description : Use liteEth
+    paramtype   : generic
+    default     : false
+
   no_bram:
     datatype    : bool
     description : No internal block RAM (only DRAM and init code carrying payload)
index c3b47bcd25f3094a535fd6a8d12d7b59a527e51a..04ac1764a846645685af26947b638c577ff3944d 100644 (file)
--- a/soc.vhdl
+++ b/soc.vhdl
@@ -29,6 +29,12 @@ use work.wishbone_types.all;
 
 -- External IO bus:
 -- 0xc8000000: LiteDRAM control (CSRs)
+-- 0xc8020000: LiteEth CSRs (*)
+-- 0xc8030000: LiteEth MMIO (*)
+
+-- (*) LiteEth must be a single aligned 32KB block as the CSRs and MMIOs
+--     are actually decoded as a single wishbone which LiteEth will
+--     internally split based on bit 16.
 
 -- (**) DRAM init code is currently special and goes to the external
 --      IO bus, this will be fixed when it's moved out of litedram and
@@ -37,6 +43,7 @@ use work.wishbone_types.all;
 -- Interrupt numbers:
 --
 --   0  : UART0
+--   1  : Ethernet
 
 entity soc is
     generic (
@@ -53,7 +60,8 @@ entity soc is
         SPI_FLASH_OFFSET   : integer := 0;
         SPI_FLASH_DEF_CKDV : natural := 2;
         SPI_FLASH_DEF_QUAD : boolean := false;
-        LOG_LENGTH         : natural := 512
+        LOG_LENGTH         : natural := 512;
+        HAS_LITEETH        : boolean := false
        );
     port(
        rst          : in  std_ulogic;
@@ -68,6 +76,10 @@ entity soc is
        wb_ext_io_out        : in wb_io_slave_out := wb_io_slave_out_init;
        wb_ext_is_dram_csr   : out std_ulogic;
        wb_ext_is_dram_init  : out std_ulogic;
+       wb_ext_is_eth        : out std_ulogic;
+
+        -- External interrupts
+        ext_irq_eth          : in std_ulogic := '0';
 
        -- UART0 signals:
        uart0_txd    : out std_ulogic;
@@ -181,6 +193,7 @@ architecture behaviour of soc is
                            SLAVE_IO_EXTERNAL,
                            SLAVE_IO_NONE);
     signal slave_io_dbg : slave_io_type;
+
 begin
 
     resets: process(system_clk)
@@ -298,6 +311,7 @@ begin
            wb_io_in.cyc <= wb_master_out.cyc;
            wb_master_in <= wb_io_out;
        end case;
+
     end process slave_top_intercon;
 
     -- IO wishbone slave 64->32 bits converter
@@ -499,6 +513,7 @@ begin
 
        wb_ext_is_dram_csr   <= '0';
        wb_ext_is_dram_init  <= '0';
+       wb_ext_is_eth        <= '0';
 
         -- Default response, ack & return all 1's
         wb_sio_in.dat <= (others => '1');
@@ -520,6 +535,12 @@ begin
             elsif wb_sio_out.adr(23 downto 16) = x"00" and HAS_DRAM then
                 wb_ext_is_dram_csr  <= '1';
                 ext_valid := true;
+            elsif wb_sio_out.adr(23 downto 16) = x"02" and HAS_LITEETH then
+                wb_ext_is_eth       <= '1';
+                ext_valid := true;
+            elsif wb_sio_out.adr(23 downto 16) = x"03" and HAS_LITEETH then
+                wb_ext_is_eth       <= '1';
+                ext_valid := true;
             end if;
             if ext_valid then
                 wb_ext_io_in.cyc <= wb_sio_out.cyc;
@@ -564,7 +585,8 @@ begin
            DRAM_INIT_SIZE => DRAM_INIT_SIZE,
            CLK_FREQ => CLK_FREQ,
            HAS_SPI_FLASH => HAS_SPI_FLASH,
-           SPI_FLASH_OFFSET => SPI_FLASH_OFFSET
+           SPI_FLASH_OFFSET => SPI_FLASH_OFFSET,
+            HAS_LITEETH => HAS_LITEETH
        )
        port map(
            clk => system_clk,
@@ -657,6 +679,7 @@ begin
     begin
         int_level_in <= (others => '0');
         int_level_in(0) <= uart0_irq;
+        int_level_in(1) <= ext_irq_eth;
     end process;
 
     -- BRAM Memory slave
index 96053b5a85aa747c61a2c203db97b57a241d1979..86e53ba03792babe68d68db6b23a16ff416f06c6 100644 (file)
@@ -16,7 +16,8 @@ entity syscon is
        DRAM_SIZE        : integer;
        DRAM_INIT_SIZE   : integer;
         HAS_SPI_FLASH    : boolean;
-        SPI_FLASH_OFFSET : integer
+        SPI_FLASH_OFFSET : integer;
+       HAS_LITEETH      : boolean
        );
     port (
        clk : in std_ulogic;
@@ -56,6 +57,7 @@ architecture behaviour of syscon is
     constant SYS_REG_INFO_HAS_DRAM    : integer := 1;
     constant SYS_REG_INFO_HAS_BRAM    : integer := 2;
     constant SYS_REG_INFO_HAS_SPIF    : integer := 3;
+    constant SYS_REG_INFO_HAS_LETH    : integer := 4;
 
     -- BRAMINFO contains the BRAM size in the bottom 52 bits
     -- DRAMINFO contains the DRAM size if any in the bottom 52 bits
@@ -89,6 +91,7 @@ architecture behaviour of syscon is
     signal info_has_bram : std_ulogic;
     signal info_has_uart : std_ulogic;
     signal info_has_spif : std_ulogic;
+    signal info_has_leth : std_ulogic;
     signal info_clk      : std_ulogic_vector(39 downto 0);
     signal info_fl_off   : std_ulogic_vector(31 downto 0);
 
@@ -102,16 +105,19 @@ begin
     core_reset <= reg_ctrl(SYS_REG_CTRL_CORE_RESET);
 
     -- Info register is hard wired
-    info_has_uart <= '1' when HAS_UART else '0';
-    info_has_dram <= '1' when HAS_DRAM else '0';
+    info_has_uart <= '1' when HAS_UART       else '0';
+    info_has_dram <= '1' when HAS_DRAM       else '0';
     info_has_bram <= '1' when BRAM_SIZE /= 0 else '0';
-    info_has_spif <= '1' when HAS_SPI_FLASH else '0';
+    info_has_spif <= '1' when HAS_SPI_FLASH  else '0';
+    info_has_leth <= '1' when HAS_LITEETH    else '0';
     info_clk <= std_ulogic_vector(to_unsigned(CLK_FREQ, 40));
     reg_info <= (SYS_REG_INFO_HAS_UART  => info_has_uart,
                 SYS_REG_INFO_HAS_DRAM  => info_has_dram,
                  SYS_REG_INFO_HAS_BRAM  => info_has_bram,
                  SYS_REG_INFO_HAS_SPIF  => info_has_spif,
+                 SYS_REG_INFO_HAS_LETH  => info_has_leth,
                 others => '0');
+
     reg_braminfo <= x"000" & std_ulogic_vector(to_unsigned(BRAM_SIZE, 52));
     reg_draminfo <= x"000" & std_ulogic_vector(to_unsigned(DRAM_SIZE, 52)) when HAS_DRAM
                    else (others => '0');