diff --git a/.gitignore b/.gitignore index fe57716..5a625b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ test_benches/verilator/build +vivado/ \ No newline at end of file diff --git a/README.md b/README.md index b896e48..42d5e7b 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ The CVA5 is derived from the Taiga Project from Simon Fraser University. The pipeline has been designed to support parallel, variable-latency execution units and to readily support the inclusion of new execution units. -![CVA5 Block Diagram](examples/zedboard/cva5_small.png) - ## Documentation and Project Setup For up-to-date documentation, as well as an automated build environment setup, refer to [Taiga Project](https://gitlab.com/sfu-rcl/taiga-project) @@ -19,7 +17,7 @@ CVA5 is licensed under the Solderpad License, Version 2.1 ( http://solderpad.org ## Examples -A zedboard configuration is provided under the examples directory along with tools for running stand-alone applications and providing application level simulation of the system. (See the README in the zedboard directory for details.) +A script to package CVA5 as an IP is available and can be run in Vivado by running `source ./examples/xilinx/package_as_ip.tcl`. A similar script can be executed afterwords to create a system implementing a small hello world application executing from block memory on the Nexys A7 FPGA. ## Publications diff --git a/core/common_components/byte_en_bram.sv b/core/common_components/byte_en_bram.sv deleted file mode 100644 index 3242d6e..0000000 --- a/core/common_components/byte_en_bram.sv +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - - -module byte_en_bram - - import cva5_config::*; - import cva5_types::*; - import riscv_types::*; - - #( - parameter LINES = 4096, - parameter preload_file = "", - parameter USE_PRELOAD_FILE = 0 - ) - ( - input logic clk, - input logic[$clog2(LINES)-1:0] addr_a, - input logic en_a, - input logic[XLEN/8-1:0] be_a, - input logic[XLEN-1:0] data_in_a, - output logic[XLEN-1:0] data_out_a, - - input logic[$clog2(LINES)-1:0] addr_b, - input logic en_b, - input logic[XLEN/8-1:0] be_b, - input logic[XLEN-1:0] data_in_b, - output logic[XLEN-1:0] data_out_b - ); - - generate - if(FPGA_VENDOR == XILINX) - xilinx_byte_enable_ram #(LINES, preload_file, USE_PRELOAD_FILE) ram_block (.*); - else - intel_byte_enable_ram #(LINES, preload_file, USE_PRELOAD_FILE) ram_block (.*); - endgenerate - -endmodule diff --git a/core/common_components/ram/dual_port_bram.sv b/core/common_components/ram/dual_port_bram.sv deleted file mode 100644 index 8913406..0000000 --- a/core/common_components/ram/dual_port_bram.sv +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright © 2023 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - - -module dual_port_bram - - import cva5_config::*; - import cva5_types::*; - import riscv_types::*; - - #( - parameter WIDTH = 32, - parameter LINES = 4096 - ) - ( - input logic clk, - - input logic en_a, - input logic wen_a, - input logic[$clog2(LINES)-1:0] addr_a, - input logic[WIDTH-1:0] data_in_a, - output logic[WIDTH-1:0] data_out_a, - - input logic en_b, - input logic wen_b, - input logic[$clog2(LINES)-1:0] addr_b, - input logic[WIDTH-1:0] data_in_b, - output logic[WIDTH-1:0] data_out_b - ); - - (* ram_style = "block", ramstyle = "no_rw_check" *) logic [WIDTH-1:0] ram [LINES]; - initial ram = '{default: 0}; - - always_ff @ (posedge clk) begin - if (en_a) begin - if (wen_a) - ram[addr_a] <= data_in_a; - data_out_a <= ram[addr_a]; - end - end - - always_ff @ (posedge clk) begin - if (en_b) begin - if (wen_b) - ram[addr_b] <= data_in_b; - data_out_b <= ram[addr_b]; - end - end - -endmodule diff --git a/core/common_components/ram/tdp_ram.sv b/core/common_components/ram/tdp_ram.sv index 46bc051..25f8f92 100644 --- a/core/common_components/ram/tdp_ram.sv +++ b/core/common_components/ram/tdp_ram.sv @@ -27,7 +27,9 @@ module tdp_ram parameter NUM_COL = 4, //Number of independently writeable components parameter COL_WIDTH = 16, //Width the "byte" enable controls parameter PIPELINE_DEPTH = 1, //Depth of the output pipeline, is latency in clock cycles - parameter CASCADE_DEPTH = 4 //Maximum depth of the memory block cascade + parameter CASCADE_DEPTH = 4, //Maximum depth of the memory block cascade + parameter USE_PRELOAD = 0, + parameter PRELOAD_FILE = "" ) ( input logic clk, @@ -51,7 +53,10 @@ module tdp_ram (* cascade_height = CASCADE_DEPTH, ramstyle = "no_rw_check" *) //Higher depths use less resources but are slower logic[DATA_WIDTH-1:0] mem[(1< - */ - - - -module intel_byte_enable_ram - - import cva5_config::*; - import riscv_types::*; - import cva5_types::*; - - #( - parameter LINES = 8192, - parameter preload_file = "", - parameter USE_PRELOAD_FILE = 0 - ) - ( - input logic clk, - input logic[$clog2(LINES)-1:0] addr_a, - input logic en_a, - input logic[XLEN/8-1:0] be_a, - input logic[XLEN-1:0] data_in_a, - output logic[XLEN-1:0] data_out_a, - - input logic[$clog2(LINES)-1:0] addr_b, - input logic en_b, - input logic[XLEN/8-1:0] be_b, - input logic[XLEN-1:0] data_in_b, - output logic[XLEN-1:0] data_out_b - ); - - (* ramstyle = "no_rw_check" *) logic [3:0][7:0] ram [LINES-1:0]; - - initial - begin - if(USE_PRELOAD_FILE) - $readmemh(preload_file,ram, 0, LINES-1); - end - - - always_ff @(posedge clk) begin - if (en_a) begin - if (be_a[0]) ram[addr_a][0] <= data_in_a[7:0]; - if (be_a[1]) ram[addr_a][1] <= data_in_a[15:8]; - if (be_a[2]) ram[addr_a][2] <= data_in_a[23:16]; - if (be_a[3]) ram[addr_a][3] <= data_in_a[31:24]; - end - data_out_a <= ram[addr_a]; - end - - - always_ff @(posedge clk) begin - if (en_b) begin - if (be_b[0]) ram[addr_b][0] <= data_in_b[7:0]; - if (be_b[1]) ram[addr_b][1] <= data_in_b[15:8]; - if (be_b[2]) ram[addr_b][2] <= data_in_b[23:16]; - if (be_b[3]) ram[addr_b][3] <= data_in_b[31:24]; - end - data_out_b <= ram[addr_b]; - end - - -endmodule diff --git a/core/common_components/vendor_support/xilinx/cva5_wrapper_xilinx.sv b/core/common_components/vendor_support/xilinx/cva5_wrapper_xilinx.sv deleted file mode 100644 index 54c1cb5..0000000 --- a/core/common_components/vendor_support/xilinx/cva5_wrapper_xilinx.sv +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - - -module cva5_wrapper_xilinx - - import cva5_config::*; - import cva5_types::*; - import l2_config_and_types::*; - - ( - input logic clk, - input logic rst, - - local_memory_interface.master instruction_bram, - local_memory_interface.master data_bram, - - l2_requester_interface.master l2, - - // AXI SIGNALS - need these to unwrap the interface for packaging // - input logic m_axi_arready, - output logic m_axi_arvalid, - output logic [C_M_AXI_ADDR_WIDTH-1:0] m_axi_araddr, - output logic [7:0] m_axi_arlen, - output logic [2:0] m_axi_arsize, - output logic [1:0] m_axi_arburst, - output logic [3:0] m_axi_arcache, - output logic [5:0] m_axi_arid, - - //read data - output logic m_axi_rready, - input logic m_axi_rvalid, - input logic [C_M_AXI_DATA_WIDTH-1:0] m_axi_rdata, - input logic [1:0] m_axi_rresp, - input logic m_axi_rlast, - input logic [5:0] m_axi_rid, - - //Write channel - //write address - input logic m_axi_awready, - output logic m_axi_awvalid, - output logic [C_M_AXI_ADDR_WIDTH-1:0] m_axi_awaddr, - output logic [7:0] m_axi_awlen, - output logic [2:0] m_axi_awsize, - output logic [1:0] m_axi_awburst, - output logic [3:0] m_axi_awcache, - output logic [5:0] m_axi_awid, - - //write data - input logic m_axi_wready, - output logic m_axi_wvalid, - output logic [C_M_AXI_DATA_WIDTH-1:0] m_axi_wdata, - output logic [(C_M_AXI_DATA_WIDTH/8)-1:0] m_axi_wstrb, - output logic m_axi_wlast, - - //write response - output logic m_axi_bready, - input logic m_axi_bvalid, - input logic [1:0] m_axi_bresp, - input logic [5:0] m_axi_bid - ); - - //Unused outputs - avalon_interface m_avalon (); - wishbone_interface dwishbone (); - wishbone_interface iwishbone (); - logic timer_interrupt; - logic interrupt; - - //AXI interface - axi_interface m_axi(); - - assign m_axi_arready = m_axi.arready; - assign m_axi_arvalid = m_axi.arvalid; - assign m_axi_araddr = m_axi.araddr; - assign m_axi_arlen = m_axi.arlen; - assign m_axi_arsize = m_axi.arsize; - assign m_axi_arburst = m_axi.arburst; - assign m_axi_arcache = m_axi.arcache; - //assign m_axi_arid = m_axi.arid; - - assign m_axi_rready = m_axi.rready; - assign m_axi_rvalid = m_axi.rvalid; - assign m_axi_rdata = m_axi.rdata; - assign m_axi_rresp = m_axi.rresp; - assign m_axi_rlast = m_axi.rlast; - //assign m_axi_rid = m_axi.rid; - - assign m_axi_awready = m_axi.awready; - assign m_axi_awvalid = m_axi.awvalid; - assign m_axi_awaddr = m_axi.awaddr; - assign m_axi_awlen = m_axi.awlen; - assign m_axi_awsize = m_axi.awsize; - assign m_axi_awburst = m_axi.awburst; - assign m_axi_awcache = m_axi.awcache; - //assign m_axi_awid = m_axi.awid; - - //write data - assign m_axi_wready = m_axi.wready; - assign m_axi_wvalid = m_axi.wvalid; - assign m_axi_wdata = m_axi.wdata; - assign m_axi_wstrb = m_axi.wstrb; - assign m_axi_wlast = m_axi.wlast; - - //write response - assign m_axi_bready = m_axi.bready; - assign m_axi_bvalid = m_axi.bvalid; - assign m_axi_bresp = m_axi.bresp; - //assign m_axi_bid = m_axi.bid; - - cva5 cpu(.*); - -endmodule diff --git a/core/common_components/vendor_support/xilinx/xilinx_byte_enable_ram.sv b/core/common_components/vendor_support/xilinx/xilinx_byte_enable_ram.sv deleted file mode 100644 index b57c83e..0000000 --- a/core/common_components/vendor_support/xilinx/xilinx_byte_enable_ram.sv +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -module xilinx_byte_enable_ram - - import cva5_config::*; - import riscv_types::*; - import cva5_types::*; - - #( - parameter LINES = 4096, - parameter preload_file = "", - parameter USE_PRELOAD_FILE = 0 - ) - ( - input logic clk, - - input logic[$clog2(LINES)-1:0] addr_a, - input logic en_a, - input logic[XLEN/8-1:0] be_a, - input logic[XLEN-1:0] data_in_a, - output logic[XLEN-1:0] data_out_a, - - input logic[$clog2(LINES)-1:0] addr_b, - input logic en_b, - input logic[XLEN/8-1:0] be_b, - input logic[XLEN-1:0] data_in_b, - output logic[XLEN-1:0] data_out_b - ); - - logic [31:0] ram [LINES-1:0]; - - initial - begin - if(USE_PRELOAD_FILE) - $readmemh(preload_file,ram, 0, LINES-1); - end - - generate begin : gen_xilinx_bram - genvar i; - for (i=0; i < 4; i++) begin - always_ff @(posedge clk) begin - if (en_a) begin - if (be_a[i]) begin - ram[addr_a][8*i+:8] <= data_in_a[8*i+:8]; - data_out_a[8*i+:8] <= data_in_a[8*i+:8]; - end else begin - data_out_a[8*i+:8] <= ram[addr_a][8*i+:8]; - end - end - end - end - - for (i=0; i < 4; i++) begin - always_ff @(posedge clk) begin - if (en_b) begin - if (be_b[i]) begin - ram[addr_b][8*i+:8] <= data_in_b[8*i+:8]; - data_out_b[8*i+:8] <= data_in_b[8*i+:8]; - end else begin - data_out_b[8*i+:8] <= ram[addr_b][8*i+:8]; - end - end - end - end - end endgenerate - -endmodule diff --git a/core/execution_units/csr_unit.sv b/core/execution_units/csr_unit.sv index 50babb3..8aa1a7b 100644 --- a/core/execution_units/csr_unit.sv +++ b/core/execution_units/csr_unit.sv @@ -332,6 +332,8 @@ module csr_unit localparam mstatus_t sstatus_mask = '{default:0, mxr:1, sum:1, spp:1, spie:1, sie:1, sd:(CONFIG.INCLUDE_UNIT.FPU), fs:{2{CONFIG.INCLUDE_UNIT.FPU}}}; logic stip_stimecmp; + logic[31:0] sie; + mip_t sip; mie_t sie_deleg_mask; localparam mie_t sie_mask = '{default:0, seie:CONFIG.MODES == MSU, stie:CONFIG.MODES == MSU, ssie:CONFIG.MODES == MSU}; localparam mip_t sip_mask = '{default:0, seip:CONFIG.MODES == MSU, stip:CONFIG.MODES == MSU, ssip:CONFIG.MODES == MSU}; @@ -722,8 +724,6 @@ endgenerate logic[31:0] scounteren; logic[31:0] stimecmp; logic[31:0] stimecmph; - mip_t sip; - logic[31:0] sie; localparam logic[31:0] sstateen0 = 0; //The defined behaviour is not used localparam logic[31:0] sstateen1 = 0; localparam logic[31:0] sstateen2 = 0; diff --git a/core/execution_units/load_store_unit/dcache_inv.sv b/core/execution_units/load_store_unit/dcache_inv.sv index 462954e..bd9a4f9 100644 --- a/core/execution_units/load_store_unit/dcache_inv.sv +++ b/core/execution_units/load_store_unit/dcache_inv.sv @@ -66,6 +66,8 @@ module dcache_inv AMO_SC, AMO_RMW } req_type_t; + req_type_t stage0_type; + req_type_t stage1_type; typedef struct packed { logic[31:0] addr; @@ -103,8 +105,6 @@ module dcache_inv stage1 <= stage0; end - req_type_t stage0_type; - req_type_t stage1_type; always_comb begin if (cbo) stage0_type = CBO; @@ -240,7 +240,8 @@ module dcache_inv .ADDR_WIDTH(SCONFIG.LINE_ADDR_W), .NUM_COL(CONFIG.DCACHE.WAYS), .COL_WIDTH($bits(tb_entry_t)), - .PIPELINE_DEPTH(0) + .PIPELINE_DEPTH(0), + .USE_PRELOAD(0) ) tagbank ( .a_en(a_en), .a_wbe(a_wbe), diff --git a/core/execution_units/load_store_unit/dcache_noinv.sv b/core/execution_units/load_store_unit/dcache_noinv.sv index 179ae99..e8a61ea 100644 --- a/core/execution_units/load_store_unit/dcache_noinv.sv +++ b/core/execution_units/load_store_unit/dcache_noinv.sv @@ -67,11 +67,25 @@ module dcache_noinv logic cbo; } req_t; + typedef enum { + IDLE, + FIRST_CYCLE, + REQUESTING_READ, + FILLING, + UNCACHEABLE_WAITING_READ, + AMO_WRITE + } stage1_t; + //Implementation req_t stage0; req_t stage1; logic stage1_done; logic stage0_advance_r; + stage1_t current_state; + logic[DB_ADDR_LEN-1:0] db_addr; + logic db_wen; + logic stage1_is_lr; + logic stage1_is_sc; assign write_outstanding = ((current_state != IDLE) & (~stage1.rnw | stage1.amo)) | mem.write_outstanding; @@ -153,17 +167,16 @@ module dcache_noinv //Databank logic[CONFIG.DCACHE.WAYS-1:0][31:0] db_entries; logic[31:0] db_hit_entry; - logic db_wen; logic[CONFIG.DCACHE.WAYS-1:0] db_way; logic[CONFIG.DCACHE.WAYS-1:0][3:0] db_wbe_full; logic[31:0] db_wdata; + logic[SCONFIG.SUB_LINE_ADDR_W-1:0] word_counter; always_comb begin for (int i = 0; i < CONFIG.DCACHE.WAYS; i++) db_wbe_full[i] = {4{db_way[i]}} & stage1.be; end - logic[DB_ADDR_LEN-1:0] db_addr; assign db_addr = current_state == FILLING ? {addr_utils.getTagLineAddr(stage1.addr), word_counter} : addr_utils.getDataLineAddr(stage1.addr); sdp_ram #( @@ -192,7 +205,6 @@ module dcache_noinv //Arbiter response logic correct_word; logic return_done; - logic[SCONFIG.SUB_LINE_ADDR_W-1:0] word_counter; assign return_done = mem.rvalid & word_counter == SCONFIG.SUB_LINE_ADDR_W'(CONFIG.DCACHE.LINE_W-1); assign correct_word = mem.rvalid & word_counter == stage1.addr[2+:SCONFIG.SUB_LINE_ADDR_W]; always_ff @(posedge clk) begin @@ -202,17 +214,7 @@ module dcache_noinv word_counter <= 0; end - typedef enum { - IDLE, - FIRST_CYCLE, - REQUESTING_READ, - FILLING, - UNCACHEABLE_WAITING_READ, - AMO_WRITE - } stage1_t; - stage1_t current_state; stage1_t next_state; - always_ff @(posedge clk) begin if (rst) current_state <= IDLE; @@ -336,9 +338,6 @@ module dcache_noinv end //AMO - logic stage1_is_lr; - logic stage1_is_sc; - assign stage1_is_lr = stage1.amo & stage1.amo_type == AMO_LR_FN5; assign stage1_is_sc = stage1.amo & stage1.amo_type == AMO_SC_FN5; diff --git a/core/types_and_interfaces/cva5_config.sv b/core/types_and_interfaces/cva5_config.sv index 1a50b8c..203fb26 100644 --- a/core/types_and_interfaces/cva5_config.sv +++ b/core/types_and_interfaces/cva5_config.sv @@ -175,7 +175,7 @@ package cva5_config; bit INCLUDE_CBO; //Data cache invalidation operations //Units - units_t INCLUDE_UNIT; + units_t INCLUDE_UNIT; //Value of ALU, LS, BR, and GC ignored //CSR constants csr_config_t CSRS; @@ -240,15 +240,12 @@ package cva5_config; //ISA options MODES : MSU, INCLUDE_UNIT : '{ - ALU : 1, - LS : 1, MUL : 1, DIV : 1, CSR : 1, FPU : 1, CUSTOM : 0, - BR : 1, - GC : 1 + default: '0 }, INCLUDE_IFENCE : 1, INCLUDE_AMO : 0, @@ -345,10 +342,6 @@ package cva5_config; WB_GROUP : EXAMPLE_WB_GROUP_CONFIG }; - //////////////////////////////////////////////////// - //Bus Options - parameter C_M_AXI_ADDR_WIDTH = 32; //Kept as parameter, due to localparam failing with scripted IP packaging - parameter C_M_AXI_DATA_WIDTH = 32; //Kept as parameter, due to localparam failing with scripted IP packaging //////////////////////////////////////////////////// //ID limit diff --git a/core/types_and_interfaces/external_interfaces.sv b/core/types_and_interfaces/external_interfaces.sv index f3d7ae2..4864432 100644 --- a/core/types_and_interfaces/external_interfaces.sv +++ b/core/types_and_interfaces/external_interfaces.sv @@ -25,7 +25,7 @@ interface axi_interface; logic arready; logic arvalid; - logic [C_M_AXI_ADDR_WIDTH-1:0] araddr; + logic [31:0] araddr; logic [7:0] arlen; logic [2:0] arsize; logic [1:0] arburst; @@ -36,7 +36,7 @@ interface axi_interface; //read data logic rready; logic rvalid; - logic [C_M_AXI_DATA_WIDTH-1:0] rdata; + logic [31:0] rdata; logic [1:0] rresp; logic rlast; logic [5:0] rid; @@ -45,7 +45,7 @@ interface axi_interface; //write address logic awready; logic awvalid; - logic [C_M_AXI_ADDR_WIDTH-1:0] awaddr; + logic [31:0] awaddr; logic [7:0] awlen; logic [2:0] awsize; logic [1:0] awburst; @@ -56,8 +56,8 @@ interface axi_interface; //write data logic wready; logic wvalid; - logic [C_M_AXI_DATA_WIDTH-1:0] wdata; - logic [(C_M_AXI_DATA_WIDTH/8)-1:0] wstrb; + logic [31:0] wdata; + logic [3:0] wstrb; logic wlast; //write response @@ -150,3 +150,15 @@ interface mem_interface; modport mem_slave (input request, addr, rlen, rnw, rmw, wbe, wdata, id, output ack, rvalid, rdata, rid, inv, inv_addr, write_outstanding); endinterface + +interface local_memory_interface; + logic[29:0] addr; + logic en; + logic[3:0] be; + logic[31:0] data_in; + logic[31:0] data_out; + + modport slave (input addr, en, be, data_in, output data_out); + modport master (output addr, en, be, data_in, input data_out); + +endinterface diff --git a/examples/litex/litex_wrapper.sv b/examples/litex/litex_wrapper.sv index aff828e..bc0f3f8 100644 --- a/examples/litex/litex_wrapper.sv +++ b/examples/litex/litex_wrapper.sv @@ -130,15 +130,12 @@ module litex_wrapper //ISA options MODES : MSU, INCLUDE_UNIT : '{ - ALU : 1, - LS : 1, MUL : 1, DIV : 1, CSR : 1, FPU : 0, CUSTOM : 0, - BR : 1, - GC : 1 + default: '0 }, INCLUDE_IFENCE : 1, INCLUDE_AMO : 1, diff --git a/examples/nexys/l1_to_axi.sv b/examples/nexys/l1_to_axi.sv deleted file mode 100644 index b2ff7e9..0000000 --- a/examples/nexys/l1_to_axi.sv +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright © 2022 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -module l1_to_axi - - import cva5_config::*; - import riscv_types::*; - import cva5_types::*; - import l2_config_and_types::*; - - ( - input logic clk, - input logic rst, - - l2_requester_interface.slave cpu, - axi_interface.master axi - ); - - localparam MAX_REQUESTS = 16; - - fifo_interface #(.DATA_TYPE(l2_request_t)) request_fifo (); - fifo_interface #(.DATA_TYPE(l2_data_request_t)) data_fifo (); - - l2_request_t request; - logic write_request; - - logic read_pop; - logic write_pop; - - logic aw_complete; - logic w_complete; - logic aw_complete_r; - logic w_complete_r; - - //////////////////////////////////////////////////// - //Implementation - assign cpu.request_full = request_fifo.full; - assign cpu.data_full = data_fifo.full; - - //Repack input attributes - assign request_fifo.data_in = '{ - addr : cpu.addr, - rnw : cpu.rnw, - is_amo : cpu.is_amo, - amo_type_or_burst_size : cpu.amo_type_or_burst_size, - sub_id : cpu.sub_id - }; - assign request_fifo.push = cpu.request_push; - assign request_fifo.potential_push = cpu.request_push; - assign request_fifo.pop = read_pop | write_pop; - assign request = request_fifo.data_out; - - assign data_fifo.push = cpu.wr_data_push; - assign data_fifo.potential_push = cpu.wr_data_push; - assign data_fifo.pop = write_pop; - assign data_fifo.data_in = '{ - data : cpu.wr_data, - be : cpu.wr_data_be - }; - - cva5_fifo #(.DATA_TYPE(l2_request_t), .FIFO_DEPTH(MAX_REQUESTS)) - request_fifo_block ( - .clk (clk), - .rst (rst), - .fifo (request_fifo) - ); - cva5_fifo #(.DATA_TYPE(l2_data_request_t), .FIFO_DEPTH(MAX_REQUESTS)) - data_fifo_block ( - .clk (clk), - .rst (rst), - .fifo (data_fifo) - ); - - //////////////////////////////////////////////////// - //AXI - localparam MAX_WRITE_IN_FLIGHT = 512; - logic [$clog2(MAX_WRITE_IN_FLIGHT+1)-1:0] write_in_flight_count; - logic [$clog2(MAX_WRITE_IN_FLIGHT+1)-1:0] write_in_flight_count_next; - - logic [4:0] burst_size; - assign burst_size = request.amo_type_or_burst_size; - - //Read Channel - assign axi.arlen = 8'(burst_size); - assign axi.arburst = (burst_size !=0) ? 2'b01 : '0;// INCR - assign axi.rready = 1; //always ready to receive data - assign axi.arsize = 3'b010;//4 bytes - assign axi.arcache = 4'b0000; //Normal Non-cacheable Non-bufferable - assign axi.arid = 6'(request.sub_id); - - assign axi.araddr = {request.addr, 2'b00} & {25'h1FFFFFF, ~burst_size, 2'b00}; - assign axi.arvalid = request.rnw & request_fifo.valid & ((request.sub_id[1:0] != L1_DCACHE_ID) | ((request.sub_id[1:0] == L1_DCACHE_ID) & (write_in_flight_count == 0))); - - assign read_pop = axi.arvalid & axi.arready; - - //Write Channel - assign axi.awlen = '0; - assign axi.awburst = '0;//2'b01;// INCR - assign axi.awsize = 3'b010;//4 bytes - assign axi.bready = 1; - assign axi.awcache = 4'b0000;//Normal Non-cacheable Non-bufferable - assign axi.awaddr = {request.addr, 2'b00}; - assign axi.awid = 6'(request.sub_id); - - assign write_request = (~request.rnw) & request_fifo.valid & data_fifo.valid; - assign axi.awvalid = write_request & ~aw_complete_r; - - assign axi.wdata = data_fifo.data_out.data; - assign axi.wstrb = data_fifo.data_out.be; - assign axi.wvalid = write_request & ~w_complete_r; - assign axi.wlast = axi.wvalid; - - assign aw_complete = axi.awvalid & axi.awready; - assign w_complete = axi.wvalid & axi.wready; - - always_ff @ (posedge clk) begin - if (rst) - aw_complete_r <= 0; - else - aw_complete_r <= (aw_complete_r | aw_complete) & ~write_pop; - end - always_ff @ (posedge clk) begin - if (rst) - w_complete_r <= 0; - else - w_complete_r <= (w_complete_r | w_complete) & ~write_pop; - end - - always_ff @ (posedge clk) begin - if (rst) - write_in_flight_count <= 0; - else - write_in_flight_count <= write_in_flight_count + $clog2(MAX_WRITE_IN_FLIGHT+1)'(write_pop) - $clog2(MAX_WRITE_IN_FLIGHT+1)'(axi.bvalid); - end - - assign write_pop = (aw_complete | aw_complete_r) & (w_complete | w_complete_r); - - //////////////////////////////////////////////////// - //Return Path - //L1 always acks data, no need for rd_data_ack - always_ff @ (posedge clk) begin - cpu.rd_data <= axi.rdata; - cpu.rd_data_valid <= axi.rvalid; - cpu.rd_sub_id <= axi.rid[L2_SUB_ID_W-1:0]; - end -endmodule diff --git a/examples/nexys/nexys_config.sv b/examples/nexys/nexys_config.sv deleted file mode 100644 index 14e48f5..0000000 --- a/examples/nexys/nexys_config.sv +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright © 2023 Eric Matthews - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - - -package nexys_config; - import cva5_config::*; - - localparam wb_group_config_t NEXYS_WB_GROUP_CONFIG = '{ - 0 : '{0: ALU_ID, default : NON_WRITEBACK_ID}, - 1 : '{0: LS_ID, default : NON_WRITEBACK_ID}, - 2 : '{0: MUL_ID, 1: DIV_ID, 2: CSR_ID, 3: FPU_ID, 4: CUSTOM_ID, default : NON_WRITEBACK_ID}, - default : '{default : NON_WRITEBACK_ID} - }; - - localparam cpu_config_t NEXYS_CONFIG = '{ - //ISA options - MODES : MSU, - INCLUDE_UNIT : '{ - ALU : 1, - LS : 1, - MUL : 1, - DIV : 1, - CSR : 1, - FPU : 1, - CUSTOM : 0, - BR : 1, - GC : 1 - }, - INCLUDE_IFENCE : 0, - INCLUDE_AMO : 0, - INCLUDE_CBO : 0, - - //CSR constants - CSRS : '{ - MACHINE_IMPLEMENTATION_ID : 0, - CPU_ID : 0, - RESET_VEC : 32'h80000000, - RESET_TVEC : 32'h00000000, - MCONFIGPTR : '0, - INCLUDE_ZICNTR : 1, - INCLUDE_ZIHPM : 1, - INCLUDE_SSTC : 1, - INCLUDE_SMSTATEEN : 1 - }, - //Memory Options - SQ_DEPTH : 8, - INCLUDE_FORWARDING_TO_STORES : 1, - AMO_UNIT : '{ - LR_WAIT : 32, - RESERVATION_WORDS : 8 //Must be the same size as the DCACHE line width - }, - INCLUDE_ICACHE : 1, - ICACHE_ADDR : '{ - L : 32'h80000000, - H : 32'h87FFFFFF - }, - ICACHE : '{ - LINES : 256, - LINE_W : 8, - WAYS : 2, - USE_EXTERNAL_INVALIDATIONS : 0, - USE_NON_CACHEABLE : 0, - NON_CACHEABLE : '{ - L : 32'h88000000, - H : 32'h8FFFFFFF - } - }, - ITLB : '{ - WAYS : 2, - DEPTH : 64 - }, - INCLUDE_DCACHE : 1, - DCACHE_ADDR : '{ - L : 32'h80000000, - H : 32'h8FFFFFFF - }, - DCACHE : '{ - LINES : 512, - LINE_W : 8, - WAYS : 1, - USE_EXTERNAL_INVALIDATIONS : 0, - USE_NON_CACHEABLE : 1, - NON_CACHEABLE : '{ - L : 32'h88000000, - H : 32'h8FFFFFFF - } - }, - DTLB : '{ - WAYS : 2, - DEPTH : 64 - }, - INCLUDE_ILOCAL_MEM : 0, - ILOCAL_MEM_ADDR : '{ - L : 32'h80000000, - H : 32'h8FFFFFFF - }, - INCLUDE_DLOCAL_MEM : 0, - DLOCAL_MEM_ADDR : '{ - L : 32'h80000000, - H : 32'h8FFFFFFF - }, - INCLUDE_IBUS : 0, - IBUS_ADDR : '{ - L : 32'h00000000, - H : 32'hFFFFFFFF - }, - INCLUDE_PERIPHERAL_BUS : 1, - PERIPHERAL_BUS_ADDR : '{ - L : 32'h60000000, - H : 32'h6FFFFFFF - }, - PERIPHERAL_BUS_TYPE : AXI_BUS, - //Branch Predictor Options - INCLUDE_BRANCH_PREDICTOR : 1, - BP : '{ - WAYS : 2, - ENTRIES : 512, - RAS_ENTRIES : 8 - }, - //Writeback Options - NUM_WB_GROUPS : 3, - WB_GROUP : NEXYS_WB_GROUP_CONFIG - }; - -endpackage \ No newline at end of file diff --git a/examples/nexys/nexys_wrapper.sv b/examples/nexys/nexys_wrapper.sv deleted file mode 100644 index 6b4b094..0000000 --- a/examples/nexys/nexys_wrapper.sv +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - - -module nexys_wrapper - - import cva5_config::*; - import cva5_types::*; - import l2_config_and_types::*; - import nexys_config::*; - - ( - input logic clk, - input logic rst, - - // AXI SIGNALS - need these to unwrap the interface for packaging // - input logic m_axi_arready, - output logic m_axi_arvalid, - output logic [31:0] m_axi_araddr, - output logic [7:0] m_axi_arlen, - output logic [2:0] m_axi_arsize, - output logic [1:0] m_axi_arburst, - output logic [3:0] m_axi_arcache, - output logic [5:0] m_axi_arid, - - //read data - output logic m_axi_rready, - input logic m_axi_rvalid, - input logic [31:0] m_axi_rdata, - input logic [1:0] m_axi_rresp, - input logic m_axi_rlast, - input logic [5:0] m_axi_rid, - - //Write channel - //write address - input logic m_axi_awready, - output logic m_axi_awvalid, - output logic [31:0] m_axi_awaddr, - output logic [7:0] m_axi_awlen, - output logic [2:0] m_axi_awsize, - output logic [1:0] m_axi_awburst, - output logic [3:0] m_axi_awcache, - output logic [5:0] m_axi_awid, - - //write data - input logic m_axi_wready, - output logic m_axi_wvalid, - output logic [31:0] m_axi_wdata, - output logic [3:0] m_axi_wstrb, - output logic m_axi_wlast, - - //write response - output logic m_axi_bready, - input logic m_axi_bvalid, - input logic [1:0] m_axi_bresp, - input logic [5:0] m_axi_bid - ); - - //Unused outputs - local_memory_interface instruction_bram (); - local_memory_interface data_bram (); - avalon_interface m_avalon (); - wishbone_interface dwishbone (); - wishbone_interface iwishbone (); - axi_interface m_axi (); - interrupt_t m_interrupt; - interrupt_t s_interrupt; - - //L2 and AXI - l2_requester_interface l2 (); - axi_interface axi (); - - logic rst_r1, rst_r2; - - assign axi.arready = m_axi_arready; - assign m_axi_arvalid = axi.arvalid; - assign m_axi_araddr = axi.araddr; - assign m_axi_arlen = axi.arlen; - assign m_axi_arsize = axi.arsize; - assign m_axi_arburst = axi.arburst; - assign m_axi_arcache = axi.arcache; - assign m_axi_arid = axi.arid; - - assign m_axi_rready = axi.rready; - assign axi.rvalid = m_axi_rvalid; - assign axi.rdata = m_axi_rdata; - assign axi.rresp = m_axi_rresp; - assign axi.rlast = m_axi_rlast; - assign axi.rid = m_axi_rid; - - assign axi.awready = m_axi_awready; - assign m_axi_awvalid = axi.awvalid; - assign m_axi_awaddr = axi.awaddr; - assign m_axi_awlen = axi.awlen; - assign m_axi_awsize = axi.awsize; - assign m_axi_awburst = axi.awburst; - assign m_axi_awcache = axi.awcache; - assign m_axi_awid = axi.awid; - - //write data - assign axi.wready = m_axi_wready; - assign m_axi_wvalid = axi.wvalid; - assign m_axi_wdata = axi.wdata; - assign m_axi_wstrb = axi.wstrb; - assign m_axi_wlast = axi.wlast; - - //write response - assign m_axi_bready = axi.bready; - assign axi.bvalid = m_axi_bvalid; - assign axi.bresp = m_axi_bresp; - assign axi.bid = m_axi_bid; - - always_ff @ (posedge clk) begin - rst_r1 <= rst; - rst_r2 <= rst_r1; - end - - l1_to_axi arb(.*, .cpu(l2), .axi(axi)); - cva5 #(.CONFIG(NEXYS_CONFIG)) cpu(.rst(rst_r2), .*); - -endmodule diff --git a/examples/nexys/scripts/cva5-ip-core-base.tcl b/examples/nexys/scripts/cva5-ip-core-base.tcl deleted file mode 100644 index 0d6266e..0000000 --- a/examples/nexys/scripts/cva5-ip-core-base.tcl +++ /dev/null @@ -1,88 +0,0 @@ - -# Set the reference directory for source file relative paths (by default the value is script directory path) -set origin_dir [file dirname [info script]] - -# Set the project name -set _xil_proj_name_ "cva5_nexys_wrapper" - -set sources_dir $origin_dir/../../../ - -# Create project -create_project ${_xil_proj_name_} $origin_dir/${_xil_proj_name_} - -# Set the directory path for the new project -set proj_dir [get_property directory [current_project]] - - -# Set project properties -set obj [current_project] -set_property -name "simulator_language" -value "Mixed" -objects $obj -set_property -name "target_language" -value "Verilog" -objects $obj - -# Create 'sources_1' fileset (if not found) -if {[string equal [get_filesets -quiet sources_1] ""]} { - create_fileset -srcset sources_1 -} - -#import sources needed for blackbox packaging -import_files -norecurse $sources_dir/examples/nexys/nexys_config.sv -import_files -norecurse $sources_dir/examples/nexys/nexys_wrapper.sv -import_files -norecurse $sources_dir/l2_arbiter/l2_external_interfaces.sv -import_files -norecurse $sources_dir/local_memory/local_memory_interface.sv -import_files -norecurse $sources_dir/core/types_and_interfaces/external_interfaces.sv -import_files -norecurse $sources_dir/core/types_and_interfaces/cva5_config.sv -import_files -norecurse $sources_dir/core/types_and_interfaces/riscv_types.sv -import_files -norecurse $sources_dir/core/types_and_interfaces/cva5_types.sv -import_files -norecurse $sources_dir/core/types_and_interfaces/csr_types.sv -import_files -norecurse $sources_dir/l2_arbiter/l2_config_and_types.sv - -# Set IP repository paths -set obj [get_filesets sources_1] -set_property "ip_repo_paths" "[file normalize "$origin_dir/${_xil_proj_name_}"]" $obj - -# Rebuild user ip_repo's index before adding any source files -update_ip_catalog -rebuild - -# Set 'sources_1' fileset properties -set obj [get_filesets sources_1] -set_property -name "top" -value "nexys_wrapper" -objects $obj -set_property -name "top_auto_set" -value "0" -objects $obj -set_property -name "top_file" -value " ${sources_dir}/examples/nexys/nexys_wrapper.sv" -objects $obj - - -############## Initial IP Packaging -ipx::package_project -import_files -force -root_dir $proj_dir -update_compile_order -fileset sources_1 -ipx::create_xgui_files [ipx::current_core] -ipx::update_checksums [ipx::current_core] -ipx::save_core [ipx::current_core] - -# To set the axi interface as aximm and port map all the signals over # - -##### Naming -set_property name CVA5 [ipx::current_core] -set_property display_name CVA5_NEXYS7 [ipx::current_core] -set_property description CVA5_NEXYS7 [ipx::current_core] -set_property vendor {} [ipx::current_core] -set_property vendor user [ipx::current_core] - -##### Re-Adding of project files -set_property ip_repo_paths $sources_dir/${_xil_proj_name_} [current_project] -current_project $_xil_proj_name_ -update_ip_catalog -import_files -force -fileset [get_filesets sources_1] $sources_dir/core -import_files -force -fileset [get_filesets sources_1] $sources_dir/l2_arbiter -import_files -force -fileset [get_filesets sources_1] $sources_dir/local_memory -import_files -fileset [get_filesets sources_1] $sources_dir/examples/nexys/l1_to_axi.sv - -############## Re-packaging of core -update_compile_order -fileset sources_1 -ipx::merge_project_changes files [ipx::current_core] -set_property core_revision 1 [ipx::current_core] -ipx::create_xgui_files [ipx::current_core] -ipx::update_checksums [ipx::current_core] -ipx::save_core [ipx::current_core] -current_project ${_xil_proj_name_} -set_property "ip_repo_paths" "[file normalize "$origin_dir/${_xil_proj_name_} "]" $obj -update_ip_catalog -rebuild - diff --git a/examples/nexys/scripts/manual_pin_assignments.xdc b/examples/nexys/scripts/manual_pin_assignments.xdc deleted file mode 100644 index 9aca589..0000000 --- a/examples/nexys/scripts/manual_pin_assignments.xdc +++ /dev/null @@ -1,18 +0,0 @@ -set_property -dict {PACKAGE_PIN H17 IOSTANDARD LVCMOS33} [get_ports {LED[0]}] -set_property -dict {PACKAGE_PIN K15 IOSTANDARD LVCMOS33} [get_ports {LED[1]}] -set_property -dict {PACKAGE_PIN J13 IOSTANDARD LVCMOS33} [get_ports {LED[2]}] -set_property -dict {PACKAGE_PIN N14 IOSTANDARD LVCMOS33} [get_ports {LED[3]}] -set_property -dict {PACKAGE_PIN R18 IOSTANDARD LVCMOS33} [get_ports {LED[4]}] -set_property -dict {PACKAGE_PIN V17 IOSTANDARD LVCMOS33} [get_ports {LED[5]}] -set_property -dict {PACKAGE_PIN U17 IOSTANDARD LVCMOS33} [get_ports {LED[6]}] -set_property -dict {PACKAGE_PIN U16 IOSTANDARD LVCMOS33} [get_ports {LED[7]}] -set_property -dict {PACKAGE_PIN V16 IOSTANDARD LVCMOS33} [get_ports {LED[8]}] -set_property -dict {PACKAGE_PIN T15 IOSTANDARD LVCMOS33} [get_ports {LED[9]}] -set_property -dict {PACKAGE_PIN U14 IOSTANDARD LVCMOS33} [get_ports {LED[10]}] -set_property -dict {PACKAGE_PIN T16 IOSTANDARD LVCMOS33} [get_ports {LED[11]}] -set_property -dict {PACKAGE_PIN V15 IOSTANDARD LVCMOS33} [get_ports {LED[12]}] -set_property -dict {PACKAGE_PIN V14 IOSTANDARD LVCMOS33} [get_ports {LED[13]}] -set_property -dict {PACKAGE_PIN V12 IOSTANDARD LVCMOS33} [get_ports {LED[14]}] -set_property -dict {PACKAGE_PIN V11 IOSTANDARD LVCMOS33} [get_ports {LED[15]}] - - diff --git a/examples/nexys/scripts/system.tcl b/examples/nexys/scripts/system.tcl deleted file mode 100644 index fb47f61..0000000 --- a/examples/nexys/scripts/system.tcl +++ /dev/null @@ -1,510 +0,0 @@ - -################################################################ -# This is a generated script based on design: system -# -# Though there are limitations about the generated script, -# the main purpose of this utility is to make learning -# IP Integrator Tcl commands easier. -################################################################ - -namespace eval _tcl { -proc get_script_folder {} { - set script_path [file normalize [info script]] - set script_folder [file dirname $script_path] - return $script_folder -} -} -variable script_folder -set script_folder [_tcl::get_script_folder] - -################################################################ -# Check if script is running in correct Vivado version. -################################################################ -set scripts_vivado_version 2022.1 -set current_vivado_version [version -short] - -if { [string first $scripts_vivado_version $current_vivado_version] == -1 } { - puts "" - catch {common::send_gid_msg -ssname BD::TCL -id 2041 -severity "ERROR" "This script was generated using Vivado <$scripts_vivado_version> and is being run in <$current_vivado_version> of Vivado. Please run the script in Vivado <$scripts_vivado_version> then open the design in Vivado <$current_vivado_version>. Upgrade the design by running \"Tools => Report => Report IP Status...\", then run write_bd_tcl to create an updated script."} - - return 1 -} - -################################################################ -# START -################################################################ - -# To test this script, run the following commands from Vivado Tcl console: -# source system_script.tcl - -# If there is no project opened, this script will create a -# project, but make sure you do not have an existing project -# <./myproj/project_1.xpr> in the current working folder. - -set list_projs [get_projects -quiet] -if { $list_projs eq "" } { - create_project cva5-competition-baseline cva5-competition-baseline -part xc7a100tcsg324-1 - set_property BOARD_PART digilentinc.com:nexys-a7-100t:part0:1.2 [current_project] -} else { - common::send_gid_msg -ssname BD::TCL -id 2100 -severity "ERROR" "Open project must be closed before running." - return -1 -} - - -# CHANGE DESIGN NAME HERE -variable design_name -set design_name system - -add_files -fileset constrs_1 -norecurse $script_folder/manual_pin_assignments.xdc - -set_property ip_repo_paths $script_folder/cva5_nexys_wrapper [current_project] -update_ip_catalog - -# If you do not already have an existing IP Integrator design open, -# you can create a design using the following command: -# create_bd_design $design_name - -# Creating design if needed -set errMsg "" -set nRet 0 - -set cur_design [current_bd_design -quiet] -set list_cells [get_bd_cells -quiet] - -if { ${design_name} eq "" } { - # USE CASES: - # 1) Design_name not set - - set errMsg "Please set the variable to a non-empty value." - set nRet 1 - -} elseif { ${cur_design} ne "" && ${list_cells} eq "" } { - # USE CASES: - # 2): Current design opened AND is empty AND names same. - # 3): Current design opened AND is empty AND names diff; design_name NOT in project. - # 4): Current design opened AND is empty AND names diff; design_name exists in project. - - if { $cur_design ne $design_name } { - common::send_gid_msg -ssname BD::TCL -id 2001 -severity "INFO" "Changing value of from <$design_name> to <$cur_design> since current design is empty." - set design_name [get_property NAME $cur_design] - } - common::send_gid_msg -ssname BD::TCL -id 2002 -severity "INFO" "Constructing design in IPI design <$cur_design>..." - -} elseif { ${cur_design} ne "" && $list_cells ne "" && $cur_design eq $design_name } { - # USE CASES: - # 5) Current design opened AND has components AND same names. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 1 -} elseif { [get_files -quiet ${design_name}.bd] ne "" } { - # USE CASES: - # 6) Current opened design, has components, but diff names, design_name exists in project. - # 7) No opened design, design_name exists in project. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 2 - -} else { - # USE CASES: - # 8) No opened design, design_name not in project. - # 9) Current opened design, has components, but diff names, design_name not in project. - - common::send_gid_msg -ssname BD::TCL -id 2003 -severity "INFO" "Currently there is no design <$design_name> in project, so creating one..." - - create_bd_design $design_name - - common::send_gid_msg -ssname BD::TCL -id 2004 -severity "INFO" "Making design <$design_name> as current_bd_design." - current_bd_design $design_name - -} - -common::send_gid_msg -ssname BD::TCL -id 2005 -severity "INFO" "Currently the variable is equal to \"$design_name\"." - -if { $nRet != 0 } { - catch {common::send_gid_msg -ssname BD::TCL -id 2006 -severity "ERROR" $errMsg} - return $nRet -} - -set bCheckIPsPassed 1 -################################################################## -# CHECK IPs -################################################################## -set bCheckIPs 1 -if { $bCheckIPs == 1 } { - set list_check_ips "\ -user:user:CVA5:1.0\ -xilinx.com:ip:axi_gpio:2.0\ -xilinx.com:ip:axi_uart16550:2.0\ -xilinx.com:ip:clk_wiz:6.0\ -xilinx.com:ip:mdm:3.2\ -xilinx.com:ip:mig_7series:4.2\ -xilinx.com:ip:proc_sys_reset:5.0\ -xilinx.com:ip:xlslice:1.0\ -" - - set list_ips_missing "" - common::send_gid_msg -ssname BD::TCL -id 2011 -severity "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ." - - foreach ip_vlnv $list_check_ips { - set ip_obj [get_ipdefs -all $ip_vlnv] - if { $ip_obj eq "" } { - lappend list_ips_missing $ip_vlnv - } - } - - if { $list_ips_missing ne "" } { - catch {common::send_gid_msg -ssname BD::TCL -id 2012 -severity "ERROR" "The following IPs are not found in the IP Catalog:\n $list_ips_missing\n\nResolution: Please add the repository containing the IP(s) to the project." } - set bCheckIPsPassed 0 - } - -} - -if { $bCheckIPsPassed != 1 } { - common::send_gid_msg -ssname BD::TCL -id 2023 -severity "WARNING" "Will not continue with creation of design due to the error(s) above." - return 3 -} - - -################################################################## -# MIG PRJ FILE TCL PROCs -################################################################## - -proc write_mig_file_system_mig_7series_0_0 { str_mig_prj_filepath } { - - file mkdir [ file dirname "$str_mig_prj_filepath" ] - set mig_prj_file [open $str_mig_prj_filepath w+] - - puts $mig_prj_file {} - puts $mig_prj_file {} - puts $mig_prj_file { } - puts $mig_prj_file {} - puts $mig_prj_file { system_mig_7series_0_0} - puts $mig_prj_file { 1} - puts $mig_prj_file { 1} - puts $mig_prj_file { OFF} - puts $mig_prj_file { 1024} - puts $mig_prj_file { ON} - puts $mig_prj_file { Enabled} - puts $mig_prj_file { xc7a100t-csg324/-1} - puts $mig_prj_file { 4.2} - puts $mig_prj_file { No Buffer} - puts $mig_prj_file { No Buffer} - puts $mig_prj_file { ACTIVE LOW} - puts $mig_prj_file { FALSE} - puts $mig_prj_file { 1} - puts $mig_prj_file { 50 Ohms} - puts $mig_prj_file { 0} - puts $mig_prj_file { } - puts $mig_prj_file { DDR2_SDRAM/Components/MT47H64M16HR-25E} - puts $mig_prj_file { 5000} - puts $mig_prj_file { 1.8V} - puts $mig_prj_file { 2:1} - puts $mig_prj_file { 100} - puts $mig_prj_file { 1} - puts $mig_prj_file { 1200} - puts $mig_prj_file { 6.000} - puts $mig_prj_file { 1} - puts $mig_prj_file { 1} - puts $mig_prj_file { 1} - puts $mig_prj_file { 1} - puts $mig_prj_file { 16} - puts $mig_prj_file { 1} - puts $mig_prj_file { 1} - puts $mig_prj_file { Disabled} - puts $mig_prj_file { Strict} - puts $mig_prj_file { 4} - puts $mig_prj_file { FALSE} - puts $mig_prj_file { } - puts $mig_prj_file { 13} - puts $mig_prj_file { 10} - puts $mig_prj_file { 3} - puts $mig_prj_file { 134217728} - puts $mig_prj_file { BANK_ROW_COLUMN} - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file { 8} - puts $mig_prj_file { Sequential} - puts $mig_prj_file { 3} - puts $mig_prj_file { Normal} - puts $mig_prj_file { No} - puts $mig_prj_file { Fast exit} - puts $mig_prj_file { 3} - puts $mig_prj_file { Enable-Normal} - puts $mig_prj_file { Fullstrength} - puts $mig_prj_file { Enable} - puts $mig_prj_file { 1} - puts $mig_prj_file { 50ohms} - puts $mig_prj_file { 0} - puts $mig_prj_file { OCD Exit} - puts $mig_prj_file { Enable} - puts $mig_prj_file { Disable} - puts $mig_prj_file { Enable} - puts $mig_prj_file { AXI} - puts $mig_prj_file { } - puts $mig_prj_file { ROUND_ROBIN} - puts $mig_prj_file { 27} - puts $mig_prj_file { 32} - puts $mig_prj_file { 7} - puts $mig_prj_file { 1} - puts $mig_prj_file { } - puts $mig_prj_file { } - puts $mig_prj_file {} - - close $mig_prj_file -} -# End of write_mig_file_system_mig_7series_0_0() - - - -################################################################## -# DESIGN PROCs -################################################################## - - - -# Procedure to create entire design; Provide argument to make -# procedure reusable. If parentCell is "", will use root. -proc create_root_design { parentCell } { - - variable script_folder - variable design_name - - if { $parentCell eq "" } { - set parentCell [get_bd_cells /] - } - - # Get object for parentCell - set parentObj [get_bd_cells $parentCell] - if { $parentObj == "" } { - catch {common::send_gid_msg -ssname BD::TCL -id 2090 -severity "ERROR" "Unable to find parent cell <$parentCell>!"} - return - } - - # Make sure parentObj is hier blk - set parentType [get_property TYPE $parentObj] - if { $parentType ne "hier" } { - catch {common::send_gid_msg -ssname BD::TCL -id 2091 -severity "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be ."} - return - } - - # Save current instance; Restore later - set oldCurInst [current_bd_instance .] - - # Set parent object as current - current_bd_instance $parentObj - - - # Create interface ports - set ddr2_sdram [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:ddrx_rtl:1.0 ddr2_sdram ] - - set dip_switches_16bits [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:gpio_rtl:1.0 dip_switches_16bits ] - - set rgb_led [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:gpio_rtl:1.0 rgb_led ] - - set usb_uart [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:uart_rtl:1.0 usb_uart ] - - - # Create ports - set LED [ create_bd_port -dir O -from 15 -to 0 -type data LED ] - set reset [ create_bd_port -dir I -type rst reset ] - set_property -dict [ list \ - CONFIG.POLARITY {ACTIVE_LOW} \ - ] $reset - set sys_clock [ create_bd_port -dir I -type clk -freq_hz 100000000 sys_clock ] - set_property -dict [ list \ - CONFIG.PHASE {0.0} \ - ] $sys_clock - - # Create instance: CVA5_0, and set properties - set CVA5_0 [ create_bd_cell -type ip -vlnv user:user:CVA5:1.0 CVA5_0 ] - - # Create instance: axi_gpio_0, and set properties - set axi_gpio_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_gpio:2.0 axi_gpio_0 ] - set_property -dict [ list \ - CONFIG.C_ALL_OUTPUTS_2 {1} \ - CONFIG.C_DOUT_DEFAULT_2 {0x00000001} \ - CONFIG.C_GPIO2_WIDTH {16} \ - CONFIG.C_IS_DUAL {1} \ - CONFIG.GPIO2_BOARD_INTERFACE {Custom} \ - CONFIG.GPIO_BOARD_INTERFACE {dip_switches_16bits} \ - CONFIG.USE_BOARD_FLOW {true} \ - ] $axi_gpio_0 - - # Create instance: axi_gpio_1, and set properties - set axi_gpio_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_gpio:2.0 axi_gpio_1 ] - set_property -dict [ list \ - CONFIG.GPIO_BOARD_INTERFACE {rgb_led} \ - CONFIG.USE_BOARD_FLOW {true} \ - ] $axi_gpio_1 - - # Create instance: axi_interconnect_0, and set properties - set axi_interconnect_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_interconnect_0 ] - set_property -dict [ list \ - CONFIG.NUM_MI {4} \ - CONFIG.NUM_SI {2} \ - CONFIG.S00_HAS_DATA_FIFO {2} \ - CONFIG.S01_HAS_DATA_FIFO {2} \ - CONFIG.STRATEGY {2} \ - ] $axi_interconnect_0 - - # Create instance: axi_uart16550_0, and set properties - set axi_uart16550_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_uart16550:2.0 axi_uart16550_0 ] - set_property -dict [ list \ - CONFIG.UART_BOARD_INTERFACE {usb_uart} \ - CONFIG.USE_BOARD_FLOW {true} \ - ] $axi_uart16550_0 - - # Create instance: clk_wiz_0, and set properties - set clk_wiz_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:6.0 clk_wiz_0 ] - set_property -dict [ list \ - CONFIG.CLK_IN1_BOARD_INTERFACE {sys_clock} \ - CONFIG.RESET_BOARD_INTERFACE {reset} \ - CONFIG.RESET_PORT {resetn} \ - CONFIG.RESET_TYPE {ACTIVE_LOW} \ - CONFIG.USE_LOCKED {false} \ - ] $clk_wiz_0 - - # Create instance: mdm_1, and set properties - set mdm_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:mdm:3.2 mdm_1 ] - set_property -dict [ list \ - CONFIG.C_ADDR_SIZE {32} \ - CONFIG.C_DBG_MEM_ACCESS {1} \ - CONFIG.C_MB_DBG_PORTS {0} \ - CONFIG.C_M_AXI_ADDR_WIDTH {32} \ - ] $mdm_1 - - # Create instance: mig_7series_0, and set properties - set mig_7series_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:mig_7series:4.2 mig_7series_0 ] - - # Generate the PRJ File for MIG - set str_mig_folder [get_property IP_DIR [ get_ips [ get_property CONFIG.Component_Name $mig_7series_0 ] ] ] - set str_mig_file_name mig_b.prj - set str_mig_file_path ${str_mig_folder}/${str_mig_file_name} - - write_mig_file_system_mig_7series_0_0 $str_mig_file_path - - set_property -dict [ list \ - CONFIG.BOARD_MIG_PARAM {ddr2_sdram} \ - CONFIG.RESET_BOARD_INTERFACE {reset} \ - CONFIG.XML_INPUT_FILE {mig_b.prj} \ - ] $mig_7series_0 - - # Create instance: proc_sys_reset_0, and set properties - set proc_sys_reset_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 proc_sys_reset_0 ] - - # Create instance: xlslice_0, and set properties - set xlslice_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:xlslice:1.0 xlslice_0 ] - set_property -dict [ list \ - CONFIG.DIN_WIDTH {16} \ - ] $xlslice_0 - - # Create interface connections - connect_bd_intf_net -intf_net CVA5_0_m_axi [get_bd_intf_pins CVA5_0/m_axi] [get_bd_intf_pins axi_interconnect_0/S00_AXI] - connect_bd_intf_net -intf_net axi_gpio_0_GPIO [get_bd_intf_ports dip_switches_16bits] [get_bd_intf_pins axi_gpio_0/GPIO] - connect_bd_intf_net -intf_net axi_gpio_1_GPIO [get_bd_intf_ports rgb_led] [get_bd_intf_pins axi_gpio_1/GPIO] - connect_bd_intf_net -intf_net axi_interconnect_0_M00_AXI [get_bd_intf_pins axi_interconnect_0/M00_AXI] [get_bd_intf_pins mig_7series_0/S_AXI] - connect_bd_intf_net -intf_net axi_interconnect_0_M01_AXI [get_bd_intf_pins axi_interconnect_0/M01_AXI] [get_bd_intf_pins axi_uart16550_0/S_AXI] - connect_bd_intf_net -intf_net axi_interconnect_0_M02_AXI [get_bd_intf_pins axi_gpio_0/S_AXI] [get_bd_intf_pins axi_interconnect_0/M02_AXI] - connect_bd_intf_net -intf_net axi_interconnect_0_M03_AXI [get_bd_intf_pins axi_gpio_1/S_AXI] [get_bd_intf_pins axi_interconnect_0/M03_AXI] - connect_bd_intf_net -intf_net axi_uart16550_0_UART [get_bd_intf_ports usb_uart] [get_bd_intf_pins axi_uart16550_0/UART] - connect_bd_intf_net -intf_net mdm_1_M_AXI [get_bd_intf_pins axi_interconnect_0/S01_AXI] [get_bd_intf_pins mdm_1/M_AXI] - connect_bd_intf_net -intf_net mig_7series_0_DDR2 [get_bd_intf_ports ddr2_sdram] [get_bd_intf_pins mig_7series_0/DDR2] - - # Create port connections - connect_bd_net -net axi_gpio_0_gpio2_io_o [get_bd_ports LED] [get_bd_pins axi_gpio_0/gpio2_io_o] [get_bd_pins xlslice_0/Din] - connect_bd_net -net clk_wiz_0_clk_out1 [get_bd_pins clk_wiz_0/clk_out1] [get_bd_pins mig_7series_0/sys_clk_i] - connect_bd_net -net mdm_1_Debug_SYS_Rst [get_bd_pins mdm_1/Debug_SYS_Rst] [get_bd_pins proc_sys_reset_0/mb_debug_sys_rst] - connect_bd_net -net mig_7series_0_ui_addn_clk_0 [get_bd_pins mig_7series_0/clk_ref_i] [get_bd_pins mig_7series_0/ui_addn_clk_0] - connect_bd_net -net mig_7series_0_ui_clk [get_bd_pins CVA5_0/clk] [get_bd_pins axi_gpio_0/s_axi_aclk] [get_bd_pins axi_gpio_1/s_axi_aclk] [get_bd_pins axi_interconnect_0/ACLK] [get_bd_pins axi_interconnect_0/M00_ACLK] [get_bd_pins axi_interconnect_0/M01_ACLK] [get_bd_pins axi_interconnect_0/M02_ACLK] [get_bd_pins axi_interconnect_0/M03_ACLK] [get_bd_pins axi_interconnect_0/S00_ACLK] [get_bd_pins axi_interconnect_0/S01_ACLK] [get_bd_pins axi_uart16550_0/s_axi_aclk] [get_bd_pins mdm_1/M_AXI_ACLK] [get_bd_pins mig_7series_0/ui_clk] [get_bd_pins proc_sys_reset_0/slowest_sync_clk] - connect_bd_net -net mig_7series_0_ui_clk_sync_rst [get_bd_pins mig_7series_0/ui_clk_sync_rst] [get_bd_pins proc_sys_reset_0/ext_reset_in] - connect_bd_net -net proc_sys_reset_0_interconnect_aresetn [get_bd_pins axi_interconnect_0/ARESETN] [get_bd_pins proc_sys_reset_0/interconnect_aresetn] - connect_bd_net -net reset_1 [get_bd_ports reset] [get_bd_pins clk_wiz_0/resetn] [get_bd_pins mig_7series_0/sys_rst] - connect_bd_net -net rst_clk_wiz_1_100M_peripheral_aresetn [get_bd_pins axi_gpio_0/s_axi_aresetn] [get_bd_pins axi_gpio_1/s_axi_aresetn] [get_bd_pins axi_interconnect_0/M00_ARESETN] [get_bd_pins axi_interconnect_0/M01_ARESETN] [get_bd_pins axi_interconnect_0/M02_ARESETN] [get_bd_pins axi_interconnect_0/M03_ARESETN] [get_bd_pins axi_interconnect_0/S00_ARESETN] [get_bd_pins axi_interconnect_0/S01_ARESETN] [get_bd_pins axi_uart16550_0/s_axi_aresetn] [get_bd_pins mdm_1/M_AXI_ARESETN] [get_bd_pins mig_7series_0/aresetn] [get_bd_pins proc_sys_reset_0/peripheral_aresetn] - connect_bd_net -net sys_clock_1 [get_bd_ports sys_clock] [get_bd_pins clk_wiz_0/clk_in1] - connect_bd_net -net xlslice_0_Dout [get_bd_pins CVA5_0/rst] [get_bd_pins xlslice_0/Dout] - - # Create address segments - assign_bd_address -offset 0x88100000 -range 0x00010000 -target_address_space [get_bd_addr_spaces CVA5_0/m_axi] [get_bd_addr_segs axi_gpio_0/S_AXI/Reg] -force - assign_bd_address -offset 0x88200000 -range 0x00010000 -target_address_space [get_bd_addr_spaces CVA5_0/m_axi] [get_bd_addr_segs axi_gpio_1/S_AXI/Reg] -force - assign_bd_address -offset 0x88000000 -range 0x00010000 -target_address_space [get_bd_addr_spaces CVA5_0/m_axi] [get_bd_addr_segs axi_uart16550_0/S_AXI/Reg] -force - assign_bd_address -offset 0x80000000 -range 0x08000000 -target_address_space [get_bd_addr_spaces CVA5_0/m_axi] [get_bd_addr_segs mig_7series_0/memmap/memaddr] -force - assign_bd_address -offset 0x88100000 -range 0x00010000 -target_address_space [get_bd_addr_spaces mdm_1/Data] [get_bd_addr_segs axi_gpio_0/S_AXI/Reg] -force - assign_bd_address -offset 0x88200000 -range 0x00010000 -target_address_space [get_bd_addr_spaces mdm_1/Data] [get_bd_addr_segs axi_gpio_1/S_AXI/Reg] -force - assign_bd_address -offset 0x88000000 -range 0x00010000 -target_address_space [get_bd_addr_spaces mdm_1/Data] [get_bd_addr_segs axi_uart16550_0/S_AXI/Reg] -force - assign_bd_address -offset 0x80000000 -range 0x08000000 -target_address_space [get_bd_addr_spaces mdm_1/Data] [get_bd_addr_segs mig_7series_0/memmap/memaddr] -force - - - # Restore current instance - current_bd_instance $oldCurInst - - validate_bd_design - save_bd_design -} -# End of create_root_design() - - -################################################################## -# MAIN FLOW -################################################################## - -create_root_design "" - -make_wrapper -files [get_files $script_folder/cva5-competition-baseline/cva5-competition-baseline.srcs/sources_1/bd/system/system.bd] -top -add_files -norecurse $script_folder/cva5-competition-baseline/cva5-competition-baseline.gen/sources_1/bd/system/hdl/system_wrapper.v -update_compile_order -fileset sources_1 - - diff --git a/examples/sw/main.c b/examples/sw/main.c new file mode 100644 index 0000000..feb03b7 --- /dev/null +++ b/examples/sw/main.c @@ -0,0 +1,48 @@ +/* + * Copyright © 2024 Chris Keilbart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Initial code developed under the supervision of Dr. Lesley Shannon, + * Reconfigurable Computing Lab, Simon Fraser University. + * + * Author(s): + * Chris Keilbart + */ + +#include +#include + +//Needed to "sleep" for the correct duration +#define MHZ 100 +static void usleep(unsigned usecs) { + unsigned int counter = usecs * MHZ; + counter /= 2; //Two instructions per loop body; decrement and compare + do { + atomic_thread_fence(memory_order_relaxed); //This prevents the loop from being optimized away but doesn't do anything + } while (counter-- > 0); //Assumes that a tight add and branch loop can be sustained at 1 IPC +} + +//Example program to run on CVA5, assumes running at 100 MHz +//The accompanying mem.mif file is the corresponding executable in hexadecimal format +//It was compiled targetting RV32IM with a 4KB memory size, and a uart_putc function supporting the AXI UART Lite AMD IP + +int main(void) { + + while(1) { + puts("Hello World!"); + usleep(1000*1000); + } + + return 0; +} diff --git a/examples/sw/mem.mif b/examples/sw/mem.mif new file mode 100644 index 0000000..1d0143a --- /dev/null +++ b/examples/sw/mem.mif @@ -0,0 +1,1024 @@ +00001117 +00010113 +00001197 +01018193 +300022f3 +00002337 +005362b3 +30029073 +00000013 +0040006f +800005b7 +80001537 +ff010113 +01800613 +33858593 +80050513 +00112623 +224000ef +80001537 +00000613 +00000593 +81850513 +234000ef +80001537 +81850513 +168000ef +088000ef +00000593 +00000513 +008000ef +124000ef +ff010113 +00812423 +00112623 +80000437 +32440513 +144000ef +02faf7b7 +08178793 +fff78793 +fe079ee3 +fe9ff06f +60000737 +00870713 +00074783 +0087f793 +fe079ce3 +600007b7 +00a78223 +00008067 +60000737 +00870713 +00074783 +0017f793 +fe078ce3 +600007b7 +0007c503 +00008067 +00a00013 +0000006f +ff010113 +00812423 +800007b7 +80000437 +01212023 +33878793 +33840713 +00112623 +00912223 +40e78933 +02e78263 +40295913 +33840413 +00000493 +00042783 +00148493 +00440413 +000780e7 +ff24e8e3 +00000793 +00078663 +00000097 +000000e7 +80000437 +800007b7 +33878793 +33840713 +40e78933 +40295913 +02e78063 +33840413 +00000493 +00042783 +00148493 +00440413 +000780e7 +ff24e8e3 +00c12083 +00812403 +00412483 +00012903 +01010113 +00008067 +ff010113 +00812423 +00112623 +00000793 +00050413 +00078863 +00000593 +00000097 +000000e7 +0e8000ef +00040513 +f21ff0ef +00050213 +00008067 +ff010113 +800007b7 +00912223 +3347a483 +00112623 +01212023 +0044c783 +0027f793 +06078663 +00812423 +00050413 +00054503 +00140413 +00000913 +02050263 +0084a783 +00048593 +00140413 +000780e7 +00055463 +fff00913 +fff44503 +fe0512e3 +0084a783 +00048593 +00a00513 +000780e7 +00812403 +00054e63 +00c12083 +00412483 +00090513 +00012903 +01010113 +00008067 +fff00913 +fe5ff06f +00050313 +00060e63 +00058383 +00730023 +fff60613 +00130313 +00158593 +fe0616e3 +00008067 +00050313 +00060a63 +00b30023 +fff60613 +00130313 +fe061ae3 +00008067 +ff010113 +00812423 +800007b7 +80000437 +33878793 +33840413 +40f40433 +00912223 +00112623 +40245493 +02048063 +ffc40413 +00f40433 +00042783 +fff48493 +ffc40413 +000780e7 +fe0498e3 +00000793 +00078e63 +00812403 +00c12083 +00412483 +01010113 +00000317 +00000067 +00c12083 +00812403 +00412483 +01010113 +00008067 +6c6c6548 +6f57206f +21646c72 +00000000 +80000800 +00000000 +00000003 +800000a8 +800000c8 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 +00000000 \ No newline at end of file diff --git a/examples/xilinx/cva5_top.v b/examples/xilinx/cva5_top.v new file mode 100644 index 0000000..29e0abf --- /dev/null +++ b/examples/xilinx/cva5_top.v @@ -0,0 +1,84 @@ +/* + * Copyright © 2024 Chris Keilbart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Initial code developed under the supervision of Dr. Lesley Shannon, + * Reconfigurable Computing Lab, Simon Fraser University. + * + * Author(s): + * Chris Keilbart + */ + +module cva5_top + + #( + parameter LOCAL_MEM = "mem.mif", + parameter WORDS = 1024 + ) + ( + input clk, + input rstn, //Synchronous active low + + //Peripheral AXI4-Lite bus + //AR + input m_axi_arready, + output m_axi_arvalid, + output [31:0] m_axi_araddr, + + //R + output m_axi_rready, + input m_axi_rvalid, + input [31:0] m_axi_rdata, + input [1:0] m_axi_rresp, + + //AW + input m_axi_awready, + output m_axi_awvalid, + output [31:0] m_axi_awaddr, + + //W + input m_axi_wready, + output m_axi_wvalid, + output [31:0] m_axi_wdata, + output [3:0] m_axi_wstrb, + + //write response + output m_axi_bready, + input m_axi_bvalid, + input [1:0] m_axi_bresp + ); + + cva5_wrapper #(.LOCAL_MEM(LOCAL_MEM), .WORDS(WORDS)) cva5_inst( + .clk(clk), + .rstn(rstn), + .m_axi_arready(m_axi_arready), + .m_axi_arvalid(m_axi_arvalid), + .m_axi_araddr(m_axi_araddr), + .m_axi_rready(m_axi_rready), + .m_axi_rvalid(m_axi_rvalid), + .m_axi_rdata(m_axi_rdata), + .m_axi_rresp(m_axi_rresp), + .m_axi_awready(m_axi_awready), + .m_axi_awvalid(m_axi_awvalid), + .m_axi_awaddr(m_axi_awaddr), + .m_axi_wready(m_axi_wready), + .m_axi_wvalid(m_axi_wvalid), + .m_axi_wdata(m_axi_wdata), + .m_axi_wstrb(m_axi_wstrb), + .m_axi_bready(m_axi_bready), + .m_axi_bvalid(m_axi_bvalid), + .m_axi_bresp(m_axi_bresp) + ); + +endmodule diff --git a/examples/xilinx/cva5_wrapper.sv b/examples/xilinx/cva5_wrapper.sv new file mode 100644 index 0000000..7e791b1 --- /dev/null +++ b/examples/xilinx/cva5_wrapper.sv @@ -0,0 +1,259 @@ +/* + * Copyright © 2024 Chris Keilbart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Initial code developed under the supervision of Dr. Lesley Shannon, + * Reconfigurable Computing Lab, Simon Fraser University. + * + * Author(s): + * Chris Keilbart + */ + +module cva5_wrapper + + import cva5_config::*; + import cva5_types::*; + + #( + parameter string LOCAL_MEM = "mem.mif", + parameter int unsigned WORDS = 1024 + ) + ( + input logic clk, + input logic rstn, //Synchronous active low + + //Peripheral AXI bus + //AR + input logic m_axi_arready, + output logic m_axi_arvalid, + output logic [31:0] m_axi_araddr, + + //R + output logic m_axi_rready, + input logic m_axi_rvalid, + input logic [31:0] m_axi_rdata, + input logic [1:0] m_axi_rresp, + + //AW + input logic m_axi_awready, + output logic m_axi_awvalid, + output logic [31:0] m_axi_awaddr, + + //W + input logic m_axi_wready, + output logic m_axi_wvalid, + output logic [31:0] m_axi_wdata, + output logic [3:0] m_axi_wstrb, + + //write response + output logic m_axi_bready, + input logic m_axi_bvalid, + input logic [1:0] m_axi_bresp + ); + + //CPU connections + local_memory_interface data_bram(); + local_memory_interface instruction_bram(); + axi_interface m_axi(); + avalon_interface m_avalon(); //Unused + wishbone_interface dwishbone(); //Unused + wishbone_interface iwishbone(); //Unused + mem_interface mem(); + logic[63:0] mtime; + interrupt_t s_interrupt; //Unused + interrupt_t m_interrupt; //Unused + + //////////////////////////////////////////////////// + //Implementation + //Instantiates a CVA5 processor using local memory + //Program start address 0x8000_0000 + //Local memory space from 0x8000_0000 through 0x80FF_FFFF + //Peripheral bus from 0x6000_0000 through 0x6FFF_FFFF + + localparam wb_group_config_t WB_CPU_CONFIG = '{ + 0 : '{0: ALU_ID, default : NON_WRITEBACK_ID}, + 1 : '{0: LS_ID, default : NON_WRITEBACK_ID}, + 2 : '{0: MUL_ID, 1: DIV_ID, 2: CSR_ID, 3: FPU_ID, 4: CUSTOM_ID, default : NON_WRITEBACK_ID}, + default : '{default : NON_WRITEBACK_ID} + }; + + localparam cpu_config_t CPU_CONFIG = '{ + //ISA options + MODES : M, + INCLUDE_UNIT : '{ + MUL : 1, + DIV : 1, + CSR : 1, + FPU : 0, + CUSTOM : 0, + default: '0 + }, + INCLUDE_IFENCE : 0, + INCLUDE_AMO : 0, + INCLUDE_CBO : 0, + //CSR constants + CSRS : '{ + MACHINE_IMPLEMENTATION_ID : 0, + CPU_ID : 0, + RESET_VEC : 32'h80000000, + RESET_TVEC : 32'h00000000, + MCONFIGPTR : '0, + INCLUDE_ZICNTR : 1, + INCLUDE_ZIHPM : 0, + INCLUDE_SSTC : 0, + INCLUDE_SMSTATEEN : 0 + }, + //Memory Options + SQ_DEPTH : 4, + INCLUDE_FORWARDING_TO_STORES : 1, + AMO_UNIT : '{ + LR_WAIT : 32, + RESERVATION_WORDS : 8 + }, + INCLUDE_ICACHE : 0, + ICACHE_ADDR : '{ + L: 32'h80000000, + H: 32'h8FFFFFFF + }, + ICACHE : '{ + LINES : 512, + LINE_W : 4, + WAYS : 2, + USE_EXTERNAL_INVALIDATIONS : 0, + USE_NON_CACHEABLE : 0, + NON_CACHEABLE : '{ + L: 32'h70000000, + H: 32'h7FFFFFFF + } + }, + ITLB : '{ + WAYS : 2, + DEPTH : 64 + }, + INCLUDE_DCACHE : 0, + DCACHE_ADDR : '{ + L: 32'h80000000, + H: 32'h8FFFFFFF + }, + DCACHE : '{ + LINES : 512, + LINE_W : 4, + WAYS : 2, + USE_EXTERNAL_INVALIDATIONS : 0, + USE_NON_CACHEABLE : 0, + NON_CACHEABLE : '{ + L: 32'h70000000, + H: 32'h7FFFFFFF + } + }, + DTLB : '{ + WAYS : 2, + DEPTH : 64 + }, + INCLUDE_ILOCAL_MEM : 1, + ILOCAL_MEM_ADDR : '{ + L : 32'h80000000, + H : 32'h80FFFFFF + }, + INCLUDE_DLOCAL_MEM : 1, + DLOCAL_MEM_ADDR : '{ + L : 32'h80000000, + H : 32'h80FFFFFF + }, + INCLUDE_IBUS : 0, + IBUS_ADDR : '{ + L : 32'h60000000, + H : 32'h6FFFFFFF + }, + INCLUDE_PERIPHERAL_BUS : 1, + PERIPHERAL_BUS_ADDR : '{ + L : 32'h60000000, + H : 32'h6FFFFFFF + }, + PERIPHERAL_BUS_TYPE : AXI_BUS, + //Branch Predictor Options + INCLUDE_BRANCH_PREDICTOR : 1, + BP : '{ + WAYS : 2, + ENTRIES : 512, + RAS_ENTRIES : 8 + }, + //Writeback Options + NUM_WB_GROUPS : 3, + WB_GROUP : WB_CPU_CONFIG + }; + + logic rst; + assign rst = ~rstn; + cva5 #(.CONFIG(CPU_CONFIG)) cpu(.*); + + always_ff @(posedge clk) begin + if (rst) + mtime <= '0; + else + mtime <= mtime + 1; + end + + assign s_interrupt = '{default: '0}; + assign m_interrupt = '{default: '0}; + + //AXI peripheral mapping; ID widths are missmatched but unused + assign m_axi.arready = m_axi_arready; + assign m_axi_arvalid = m_axi.arvalid; + assign m_axi_araddr = m_axi.araddr; + + assign m_axi_rready = m_axi.rready; + assign m_axi.rvalid = m_axi_rvalid; + assign m_axi.rdata = m_axi_rdata; + assign m_axi.rresp = m_axi_rresp; + assign m_axi.rid = 6'b0; + + assign m_axi.awready = m_axi_awready; + assign m_axi_awvalid = m_axi.awvalid; + assign m_axi_awaddr = m_axi.awaddr; + + assign m_axi.wready = m_axi_wready; + assign m_axi_wvalid = m_axi.wvalid; + assign m_axi_wdata = m_axi.wdata; + assign m_axi_wstrb = m_axi.wstrb; + + assign m_axi_bready = m_axi.bready; + assign m_axi.bvalid = m_axi_bvalid; + assign m_axi.bresp = m_axi_bresp; + assign m_axi.bid = 6'b0; + + //Block memory + localparam BRAM_ADDR_W = $clog2(WORDS); + tdp_ram #( + .ADDR_WIDTH(BRAM_ADDR_W), + .NUM_COL(4), + .COL_WIDTH(8), + .PIPELINE_DEPTH(0), + .CASCADE_DEPTH(8), + .USE_PRELOAD(1), + .PRELOAD_FILE(LOCAL_MEM) + ) local_mem ( + .a_en(instruction_bram.en), + .a_wbe(instruction_bram.be), + .a_wdata(instruction_bram.data_in), + .a_addr(instruction_bram.addr[BRAM_ADDR_W-1:0]), + .a_rdata(instruction_bram.data_out), + .b_en(data_bram.en), + .b_wbe(data_bram.be), + .b_wdata(data_bram.data_in), + .b_addr(data_bram.addr[BRAM_ADDR_W-1:0]), + .b_rdata(data_bram.data_out), + .*); + +endmodule diff --git a/examples/xilinx/nexys_sys.tcl b/examples/xilinx/nexys_sys.tcl new file mode 100644 index 0000000..d6713a8 --- /dev/null +++ b/examples/xilinx/nexys_sys.tcl @@ -0,0 +1,35 @@ +puts "This script will create a system project for CVA5 in the current folder to run a demo application from block memory on the Nexys A7-100T" +puts "You should install the board support files from https://github.com/Digilent/vivado-boards before running this script" + +# Create the project +create_project -force -part xc7a100tcsg324-1 CVA5BD ./vivado/CVA5BD +set_property board_part digilentinc.com:nexys-a7-100t:part0:1.3 [current_project] +set_property ip_repo_paths ./vivado/ip_repo [current_project] +update_ip_catalog + +# Block diagram +create_bd_design "soc" +# UART +create_bd_cell -type ip -vlnv xilinx.com:ip:axi_uartlite:2.0 axi_uartlite_0 +apply_board_connection -board_interface "usb_uart" -ip_intf "axi_uartlite_0/UART" -diagram "soc" +# Reset +create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 proc_sys_reset_0 +apply_board_connection -board_interface "reset" -ip_intf "proc_sys_reset_0/ext_reset" -diagram "soc" +# Clock +create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:6.0 clk_wiz_0 +# Connect to clock on board +apply_bd_automation -rule xilinx.com:bd_rule:board -config { Board_Interface {sys_clock ( System Clock ) } Manual_Source {Auto}} [get_bd_pins clk_wiz_0/clk_in1] +# Connect to reset on board via inverter +apply_bd_automation -rule xilinx.com:bd_rule:board -config { Board_Interface {reset ( Reset ) } Manual_Source {New External Port (ACTIVE_HIGH)}} [get_bd_pins clk_wiz_0/reset] +# Processor +create_bd_cell -type ip -vlnv xilinx.com:user:cva5_top:1.0 cva5_top_0 +# Connect processor to UART via interconnect +apply_bd_automation -rule xilinx.com:bd_rule:axi4 -config { Clk_master {Auto} Clk_slave {Auto} Clk_xbar {Auto} Master {/cva5_top_0/m_axi} Slave {/axi_uartlite_0/S_AXI} ddr_seg {Auto} intc_ip {New AXI Interconnect} master_apm {0}} [get_bd_intf_pins axi_uartlite_0/S_AXI] +# Set address space +set_property offset 0x60000000 [get_bd_addr_segs {cva5_top_0/m_axi/SEG_axi_uartlite_0_Reg}] + +regenerate_bd_layout + +make_wrapper -files [get_files ./vivado/CVA5BD/CVA5BD.srcs/sources_1/bd/soc/soc.bd] -top +add_files ./vivado/CVA5BD/CVA5BD.gen/sources_1/bd/soc/hdl/soc_wrapper.v +update_compile_order -fileset sources_1 diff --git a/examples/xilinx/package_as_ip.tcl b/examples/xilinx/package_as_ip.tcl new file mode 100644 index 0000000..ea647c3 --- /dev/null +++ b/examples/xilinx/package_as_ip.tcl @@ -0,0 +1,20 @@ +puts "This script will create a project for CVA5 in the current folder and package it as an IP" + +# Create the project +create_project -force -part xc7a100tcsg324-1 CVA5IP ./vivado/CVA5IP +add_files -force {core examples/xilinx examples/sw} +set_property top cva5_top [current_fileset] +update_compile_order -fileset sources_1 + +# Now package as IP using intermediate project +ipx::package_project -root_dir ./vivado/ip_repo -vendor xilinx.com -library user -taxonomy /UserIP -import_files -set_current false -force +ipx::unload_core ./vivado/ip_repo/component.xml +ipx::edit_ip_in_project -upgrade true -name tmp_edit_project -directory ./vivado/ip_repo ./vivado/ip_repo/component.xml +ipx::update_source_project_archive -component [ipx::current_core] +ipx::create_xgui_files [ipx::current_core] +ipx::update_checksums [ipx::current_core] +ipx::check_integrity [ipx::current_core] +ipx::save_core [ipx::current_core] +ipx::move_temp_component_back -component [ipx::current_core] +close_project -delete +close_project diff --git a/examples/zedboard/README.md b/examples/zedboard/README.md deleted file mode 100644 index 73d8c57..0000000 --- a/examples/zedboard/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Creating a Hardware Project for the Zedboard ------------ - -We have provided a TCL script that automates the creation of a CVA5 system on a zedBoard through Vivado. -We also provide the manual steps that the script automate. - -Hardware setup scripts and steps found here: [Hardware Setup](https://gitlab.com/sfu-rcl/taiga-project/-/wikis/Hardware-Setup) - -Simulation setup scripts and steps found here: [Simulation Setup](https://gitlab.com/sfu-rcl/taiga-project/-/wikis/Simulation-Setup) - - diff --git a/examples/zedboard/arm.tcl b/examples/zedboard/arm.tcl deleted file mode 100644 index 215dc96..0000000 --- a/examples/zedboard/arm.tcl +++ /dev/null @@ -1,1232 +0,0 @@ - -################################################################ -# This is a generated script based on design: arm -# -# Though there are limitations about the generated script, -# the main purpose of this utility is to make learning -# IP Integrator Tcl commands easier. -################################################################ - -namespace eval _tcl { -proc get_script_folder {} { - set script_path [file normalize [info script]] - set script_folder [file dirname $script_path] - return $script_folder -} -} -variable script_folder -set script_folder [_tcl::get_script_folder] - -################################################################ -# Check if script is running in correct Vivado version. -################################################################ -set scripts_vivado_version 2017.3 -set current_vivado_version [version -short] - -if { [string first $scripts_vivado_version $current_vivado_version] == -1 } { - puts "" - catch {common::send_msg_id "BD_TCL-109" "ERROR" "This script was generated using Vivado <$scripts_vivado_version> and is being run in <$current_vivado_version> of Vivado. Please run the script in Vivado <$scripts_vivado_version> then open the design in Vivado <$current_vivado_version>. Upgrade the design by running \"Tools => Report => Report IP Status...\", then run write_bd_tcl to create an updated script."} - - return 1 -} - -################################################################ -# START -################################################################ - -# To test this script, run the following commands from Vivado Tcl console: -# source arm_script.tcl - -# If there is no project opened, this script will create a -# project, but make sure you do not have an existing project -# <./myproj/project_1.xpr> in the current working folder. - -set list_projs [get_projects -quiet] -if { $list_projs eq "" } { - create_project project_1 myproj -part xc7z020clg484-1 - set_property BOARD_PART em.avnet.com:zed:part0:0.9 [current_project] -} - - -# CHANGE DESIGN NAME HERE -set design_name arm - -# If you do not already have an existing IP Integrator design open, -# you can create a design using the following command: -# create_bd_design $design_name - -# Creating design if needed -set errMsg "" -set nRet 0 - -set cur_design [current_bd_design -quiet] -set list_cells [get_bd_cells -quiet] - -if { ${design_name} eq "" } { - # USE CASES: - # 1) Design_name not set - - set errMsg "Please set the variable to a non-empty value." - set nRet 1 - -} elseif { ${cur_design} ne "" && ${list_cells} eq "" } { - # USE CASES: - # 2): Current design opened AND is empty AND names same. - # 3): Current design opened AND is empty AND names diff; design_name NOT in project. - # 4): Current design opened AND is empty AND names diff; design_name exists in project. - - if { $cur_design ne $design_name } { - common::send_msg_id "BD_TCL-001" "INFO" "Changing value of from <$design_name> to <$cur_design> since current design is empty." - set design_name [get_property NAME $cur_design] - } - common::send_msg_id "BD_TCL-002" "INFO" "Constructing design in IPI design <$cur_design>..." - -} elseif { ${cur_design} ne "" && $list_cells ne "" && $cur_design eq $design_name } { - # USE CASES: - # 5) Current design opened AND has components AND same names. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 1 -} elseif { [get_files -quiet ${design_name}.bd] ne "" } { - # USE CASES: - # 6) Current opened design, has components, but diff names, design_name exists in project. - # 7) No opened design, design_name exists in project. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 2 - -} else { - # USE CASES: - # 8) No opened design, design_name not in project. - # 9) Current opened design, has components, but diff names, design_name not in project. - - common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..." - - create_bd_design $design_name - - common::send_msg_id "BD_TCL-004" "INFO" "Making design <$design_name> as current_bd_design." - current_bd_design $design_name - -} - -common::send_msg_id "BD_TCL-005" "INFO" "Currently the variable is equal to \"$design_name\"." - -if { $nRet != 0 } { - catch {common::send_msg_id "BD_TCL-114" "ERROR" $errMsg} - return $nRet -} - -################################################################## -# DESIGN PROCs -################################################################## - - - -# Procedure to create entire design; Provide argument to make -# procedure reusable. If parentCell is "", will use root. -proc create_root_design { parentCell } { - - variable script_folder - - if { $parentCell eq "" } { - set parentCell [get_bd_cells /] - } - - # Get object for parentCell - set parentObj [get_bd_cells $parentCell] - if { $parentObj == "" } { - catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"} - return - } - - # Make sure parentObj is hier blk - set parentType [get_property TYPE $parentObj] - if { $parentType ne "hier" } { - catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be ."} - return - } - - # Save current instance; Restore later - set oldCurInst [current_bd_instance .] - - # Set parent object as current - current_bd_instance $parentObj - - - # Create interface ports - set DDR [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:ddrx_rtl:1.0 DDR ] - set FIXED_IO [ create_bd_intf_port -mode Master -vlnv xilinx.com:display_processing_system7:fixedio_rtl:1.0 FIXED_IO ] - set mem_axi [ create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 mem_axi ] - set_property -dict [ list \ -CONFIG.ADDR_WIDTH {32} \ -CONFIG.ARUSER_WIDTH {0} \ -CONFIG.AWUSER_WIDTH {0} \ -CONFIG.BUSER_WIDTH {0} \ -CONFIG.DATA_WIDTH {32} \ -CONFIG.HAS_BRESP {1} \ -CONFIG.HAS_BURST {1} \ -CONFIG.HAS_CACHE {1} \ -CONFIG.HAS_LOCK {1} \ -CONFIG.HAS_PROT {1} \ -CONFIG.HAS_QOS {1} \ -CONFIG.HAS_REGION {0} \ -CONFIG.HAS_RRESP {1} \ -CONFIG.HAS_WSTRB {1} \ -CONFIG.ID_WIDTH {6} \ -CONFIG.MAX_BURST_LENGTH {16} \ -CONFIG.NUM_READ_OUTSTANDING {8} \ -CONFIG.NUM_READ_THREADS {1} \ -CONFIG.NUM_WRITE_OUTSTANDING {8} \ -CONFIG.NUM_WRITE_THREADS {1} \ -CONFIG.PROTOCOL {AXI3} \ -CONFIG.READ_WRITE_MODE {READ_WRITE} \ -CONFIG.RUSER_BITS_PER_BYTE {0} \ -CONFIG.RUSER_WIDTH {0} \ -CONFIG.SUPPORTS_NARROW_BURST {1} \ -CONFIG.WUSER_BITS_PER_BYTE {0} \ -CONFIG.WUSER_WIDTH {0} \ - ] $mem_axi - - # Create ports - set clk [ create_bd_port -dir O clk ] - set resetn [ create_bd_port -dir O resetn ] - - # Create instance: processing_system7_0, and set properties - set processing_system7_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 processing_system7_0 ] - set_property -dict [ list \ -CONFIG.PCW_ACT_CAN_PERIPHERAL_FREQMHZ {10.000000} \ -CONFIG.PCW_ACT_DCI_PERIPHERAL_FREQMHZ {10.158730} \ -CONFIG.PCW_ACT_ENET0_PERIPHERAL_FREQMHZ {125.000000} \ -CONFIG.PCW_ACT_ENET1_PERIPHERAL_FREQMHZ {10.000000} \ -CONFIG.PCW_ACT_FPGA0_PERIPHERAL_FREQMHZ {100.000000} \ -CONFIG.PCW_ACT_FPGA1_PERIPHERAL_FREQMHZ {10.000000} \ -CONFIG.PCW_ACT_FPGA2_PERIPHERAL_FREQMHZ {10.000000} \ -CONFIG.PCW_ACT_FPGA3_PERIPHERAL_FREQMHZ {10.000000} \ -CONFIG.PCW_ACT_PCAP_PERIPHERAL_FREQMHZ {200.000000} \ -CONFIG.PCW_ACT_QSPI_PERIPHERAL_FREQMHZ {200.000000} \ -CONFIG.PCW_ACT_SDIO_PERIPHERAL_FREQMHZ {50.000000} \ -CONFIG.PCW_ACT_SMC_PERIPHERAL_FREQMHZ {10.000000} \ -CONFIG.PCW_ACT_SPI_PERIPHERAL_FREQMHZ {10.000000} \ -CONFIG.PCW_ACT_TPIU_PERIPHERAL_FREQMHZ {200.000000} \ -CONFIG.PCW_ACT_UART_PERIPHERAL_FREQMHZ {50.000000} \ -CONFIG.PCW_APU_CLK_RATIO_ENABLE {6:2:1} \ -CONFIG.PCW_APU_PERIPHERAL_FREQMHZ {666.666667} \ -CONFIG.PCW_ARMPLL_CTRL_FBDIV {40} \ -CONFIG.PCW_CAN0_CAN0_IO {} \ -CONFIG.PCW_CAN0_PERIPHERAL_CLKSRC {External} \ -CONFIG.PCW_CAN0_PERIPHERAL_ENABLE {0} \ -CONFIG.PCW_CAN1_CAN1_IO {} \ -CONFIG.PCW_CAN1_PERIPHERAL_CLKSRC {External} \ -CONFIG.PCW_CAN1_PERIPHERAL_ENABLE {0} \ -CONFIG.PCW_CAN_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_CAN_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_CAN_PERIPHERAL_DIVISOR1 {1} \ -CONFIG.PCW_CAN_PERIPHERAL_FREQMHZ {100} \ -CONFIG.PCW_CLK0_FREQ {100000000} \ -CONFIG.PCW_CLK1_FREQ {10000000} \ -CONFIG.PCW_CLK2_FREQ {10000000} \ -CONFIG.PCW_CLK3_FREQ {10000000} \ -CONFIG.PCW_CPU_CPU_6X4X_MAX_RANGE {667} \ -CONFIG.PCW_CPU_CPU_PLL_FREQMHZ {1333.333} \ -CONFIG.PCW_CPU_PERIPHERAL_CLKSRC {ARM PLL} \ -CONFIG.PCW_CPU_PERIPHERAL_DIVISOR0 {2} \ -CONFIG.PCW_CRYSTAL_PERIPHERAL_FREQMHZ {33.333333} \ -CONFIG.PCW_DCI_PERIPHERAL_CLKSRC {DDR PLL} \ -CONFIG.PCW_DCI_PERIPHERAL_DIVISOR0 {15} \ -CONFIG.PCW_DCI_PERIPHERAL_DIVISOR1 {7} \ -CONFIG.PCW_DCI_PERIPHERAL_FREQMHZ {10.159} \ -CONFIG.PCW_DDRPLL_CTRL_FBDIV {32} \ -CONFIG.PCW_DDR_DDR_PLL_FREQMHZ {1066.667} \ -CONFIG.PCW_DDR_HPRLPR_QUEUE_PARTITION {HPR(0)/LPR(32)} \ -CONFIG.PCW_DDR_HPR_TO_CRITICAL_PRIORITY_LEVEL {15} \ -CONFIG.PCW_DDR_LPR_TO_CRITICAL_PRIORITY_LEVEL {2} \ -CONFIG.PCW_DDR_PERIPHERAL_CLKSRC {DDR PLL} \ -CONFIG.PCW_DDR_PERIPHERAL_DIVISOR0 {2} \ -CONFIG.PCW_DDR_PORT0_HPR_ENABLE {0} \ -CONFIG.PCW_DDR_PORT1_HPR_ENABLE {0} \ -CONFIG.PCW_DDR_PORT2_HPR_ENABLE {0} \ -CONFIG.PCW_DDR_PORT3_HPR_ENABLE {0} \ -CONFIG.PCW_DDR_PRIORITY_READPORT_0 {} \ -CONFIG.PCW_DDR_PRIORITY_READPORT_2 {} \ -CONFIG.PCW_DDR_PRIORITY_WRITEPORT_0 {} \ -CONFIG.PCW_DDR_PRIORITY_WRITEPORT_2 {} \ -CONFIG.PCW_DDR_RAM_HIGHADDR {0x1FFFFFFF} \ -CONFIG.PCW_DDR_WRITE_TO_CRITICAL_PRIORITY_LEVEL {2} \ -CONFIG.PCW_ENET0_ENET0_IO {MIO 16 .. 27} \ -CONFIG.PCW_ENET0_GRP_MDIO_ENABLE {1} \ -CONFIG.PCW_ENET0_GRP_MDIO_IO {MIO 52 .. 53} \ -CONFIG.PCW_ENET0_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_ENET0_PERIPHERAL_DIVISOR0 {8} \ -CONFIG.PCW_ENET0_PERIPHERAL_DIVISOR1 {1} \ -CONFIG.PCW_ENET0_PERIPHERAL_ENABLE {1} \ -CONFIG.PCW_ENET0_PERIPHERAL_FREQMHZ {1000 Mbps} \ -CONFIG.PCW_ENET0_RESET_ENABLE {0} \ -CONFIG.PCW_ENET0_RESET_IO {} \ -CONFIG.PCW_ENET1_GRP_MDIO_ENABLE {0} \ -CONFIG.PCW_ENET1_GRP_MDIO_IO {} \ -CONFIG.PCW_ENET_RESET_ENABLE {1} \ -CONFIG.PCW_ENET_RESET_POLARITY {Active Low} \ -CONFIG.PCW_ENET_RESET_SELECT {Share reset pin} \ -CONFIG.PCW_EN_4K_TIMER {0} \ -CONFIG.PCW_EN_EMIO_TTC0 {1} \ -CONFIG.PCW_EN_ENET0 {1} \ -CONFIG.PCW_EN_GPIO {1} \ -CONFIG.PCW_EN_QSPI {1} \ -CONFIG.PCW_EN_SDIO0 {1} \ -CONFIG.PCW_EN_TTC0 {1} \ -CONFIG.PCW_EN_UART1 {1} \ -CONFIG.PCW_EN_USB0 {1} \ -CONFIG.PCW_FCLK0_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_FCLK0_PERIPHERAL_DIVISOR0 {5} \ -CONFIG.PCW_FCLK0_PERIPHERAL_DIVISOR1 {2} \ -CONFIG.PCW_FCLK1_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_FCLK1_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_FCLK1_PERIPHERAL_DIVISOR1 {1} \ -CONFIG.PCW_FCLK2_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_FCLK2_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_FCLK2_PERIPHERAL_DIVISOR1 {1} \ -CONFIG.PCW_FCLK3_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_FCLK3_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_FCLK3_PERIPHERAL_DIVISOR1 {1} \ -CONFIG.PCW_FCLK_CLK0_BUF {TRUE} \ -CONFIG.PCW_FCLK_CLK1_BUF {FALSE} \ -CONFIG.PCW_FCLK_CLK2_BUF {FALSE} \ -CONFIG.PCW_FCLK_CLK3_BUF {FALSE} \ -CONFIG.PCW_FPGA0_PERIPHERAL_FREQMHZ {100} \ -CONFIG.PCW_FPGA1_PERIPHERAL_FREQMHZ {150.000000} \ -CONFIG.PCW_FPGA2_PERIPHERAL_FREQMHZ {50} \ -CONFIG.PCW_FPGA3_PERIPHERAL_FREQMHZ {50} \ -CONFIG.PCW_FPGA_FCLK0_ENABLE {1} \ -CONFIG.PCW_FTM_CTI_IN0 {} \ -CONFIG.PCW_FTM_CTI_IN2 {} \ -CONFIG.PCW_FTM_CTI_OUT0 {} \ -CONFIG.PCW_FTM_CTI_OUT2 {} \ -CONFIG.PCW_GPIO_EMIO_GPIO_ENABLE {0} \ -CONFIG.PCW_GPIO_EMIO_GPIO_IO {} \ -CONFIG.PCW_I2C0_I2C0_IO {} \ -CONFIG.PCW_I2C1_GRP_INT_ENABLE {0} \ -CONFIG.PCW_I2C1_GRP_INT_IO {} \ -CONFIG.PCW_I2C1_PERIPHERAL_ENABLE {0} \ -CONFIG.PCW_I2C1_RESET_ENABLE {0} \ -CONFIG.PCW_I2C1_RESET_IO {} \ -CONFIG.PCW_IOPLL_CTRL_FBDIV {30} \ -CONFIG.PCW_IO_IO_PLL_FREQMHZ {1000.000} \ -CONFIG.PCW_MIO_0_DIRECTION {inout} \ -CONFIG.PCW_MIO_0_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_0_PULLUP {disabled} \ -CONFIG.PCW_MIO_0_SLEW {slow} \ -CONFIG.PCW_MIO_10_DIRECTION {inout} \ -CONFIG.PCW_MIO_10_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_10_PULLUP {disabled} \ -CONFIG.PCW_MIO_10_SLEW {slow} \ -CONFIG.PCW_MIO_11_DIRECTION {inout} \ -CONFIG.PCW_MIO_11_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_11_PULLUP {disabled} \ -CONFIG.PCW_MIO_11_SLEW {slow} \ -CONFIG.PCW_MIO_12_DIRECTION {inout} \ -CONFIG.PCW_MIO_12_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_12_PULLUP {disabled} \ -CONFIG.PCW_MIO_12_SLEW {slow} \ -CONFIG.PCW_MIO_13_DIRECTION {inout} \ -CONFIG.PCW_MIO_13_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_13_PULLUP {disabled} \ -CONFIG.PCW_MIO_13_SLEW {slow} \ -CONFIG.PCW_MIO_14_DIRECTION {inout} \ -CONFIG.PCW_MIO_14_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_14_PULLUP {disabled} \ -CONFIG.PCW_MIO_14_SLEW {slow} \ -CONFIG.PCW_MIO_15_DIRECTION {inout} \ -CONFIG.PCW_MIO_15_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_15_PULLUP {disabled} \ -CONFIG.PCW_MIO_15_SLEW {slow} \ -CONFIG.PCW_MIO_16_DIRECTION {out} \ -CONFIG.PCW_MIO_16_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_16_PULLUP {disabled} \ -CONFIG.PCW_MIO_16_SLEW {fast} \ -CONFIG.PCW_MIO_17_DIRECTION {out} \ -CONFIG.PCW_MIO_17_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_17_PULLUP {disabled} \ -CONFIG.PCW_MIO_17_SLEW {fast} \ -CONFIG.PCW_MIO_18_DIRECTION {out} \ -CONFIG.PCW_MIO_18_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_18_PULLUP {disabled} \ -CONFIG.PCW_MIO_18_SLEW {fast} \ -CONFIG.PCW_MIO_19_DIRECTION {out} \ -CONFIG.PCW_MIO_19_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_19_PULLUP {disabled} \ -CONFIG.PCW_MIO_19_SLEW {fast} \ -CONFIG.PCW_MIO_1_DIRECTION {out} \ -CONFIG.PCW_MIO_1_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_1_PULLUP {disabled} \ -CONFIG.PCW_MIO_1_SLEW {fast} \ -CONFIG.PCW_MIO_20_DIRECTION {out} \ -CONFIG.PCW_MIO_20_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_20_PULLUP {disabled} \ -CONFIG.PCW_MIO_20_SLEW {fast} \ -CONFIG.PCW_MIO_21_DIRECTION {out} \ -CONFIG.PCW_MIO_21_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_21_PULLUP {disabled} \ -CONFIG.PCW_MIO_21_SLEW {fast} \ -CONFIG.PCW_MIO_22_DIRECTION {in} \ -CONFIG.PCW_MIO_22_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_22_PULLUP {disabled} \ -CONFIG.PCW_MIO_22_SLEW {fast} \ -CONFIG.PCW_MIO_23_DIRECTION {in} \ -CONFIG.PCW_MIO_23_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_23_PULLUP {disabled} \ -CONFIG.PCW_MIO_23_SLEW {fast} \ -CONFIG.PCW_MIO_24_DIRECTION {in} \ -CONFIG.PCW_MIO_24_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_24_PULLUP {disabled} \ -CONFIG.PCW_MIO_24_SLEW {fast} \ -CONFIG.PCW_MIO_25_DIRECTION {in} \ -CONFIG.PCW_MIO_25_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_25_PULLUP {disabled} \ -CONFIG.PCW_MIO_25_SLEW {fast} \ -CONFIG.PCW_MIO_26_DIRECTION {in} \ -CONFIG.PCW_MIO_26_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_26_PULLUP {disabled} \ -CONFIG.PCW_MIO_26_SLEW {fast} \ -CONFIG.PCW_MIO_27_DIRECTION {in} \ -CONFIG.PCW_MIO_27_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_27_PULLUP {disabled} \ -CONFIG.PCW_MIO_27_SLEW {fast} \ -CONFIG.PCW_MIO_28_DIRECTION {inout} \ -CONFIG.PCW_MIO_28_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_28_PULLUP {disabled} \ -CONFIG.PCW_MIO_28_SLEW {fast} \ -CONFIG.PCW_MIO_29_DIRECTION {in} \ -CONFIG.PCW_MIO_29_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_29_PULLUP {disabled} \ -CONFIG.PCW_MIO_29_SLEW {fast} \ -CONFIG.PCW_MIO_2_DIRECTION {inout} \ -CONFIG.PCW_MIO_2_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_2_PULLUP {disabled} \ -CONFIG.PCW_MIO_2_SLEW {fast} \ -CONFIG.PCW_MIO_30_DIRECTION {out} \ -CONFIG.PCW_MIO_30_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_30_PULLUP {disabled} \ -CONFIG.PCW_MIO_30_SLEW {fast} \ -CONFIG.PCW_MIO_31_DIRECTION {in} \ -CONFIG.PCW_MIO_31_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_31_PULLUP {disabled} \ -CONFIG.PCW_MIO_31_SLEW {fast} \ -CONFIG.PCW_MIO_32_DIRECTION {inout} \ -CONFIG.PCW_MIO_32_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_32_PULLUP {disabled} \ -CONFIG.PCW_MIO_32_SLEW {fast} \ -CONFIG.PCW_MIO_33_DIRECTION {inout} \ -CONFIG.PCW_MIO_33_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_33_PULLUP {disabled} \ -CONFIG.PCW_MIO_33_SLEW {fast} \ -CONFIG.PCW_MIO_34_DIRECTION {inout} \ -CONFIG.PCW_MIO_34_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_34_PULLUP {disabled} \ -CONFIG.PCW_MIO_34_SLEW {fast} \ -CONFIG.PCW_MIO_35_DIRECTION {inout} \ -CONFIG.PCW_MIO_35_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_35_PULLUP {disabled} \ -CONFIG.PCW_MIO_35_SLEW {fast} \ -CONFIG.PCW_MIO_36_DIRECTION {in} \ -CONFIG.PCW_MIO_36_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_36_PULLUP {disabled} \ -CONFIG.PCW_MIO_36_SLEW {fast} \ -CONFIG.PCW_MIO_37_DIRECTION {inout} \ -CONFIG.PCW_MIO_37_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_37_PULLUP {disabled} \ -CONFIG.PCW_MIO_37_SLEW {fast} \ -CONFIG.PCW_MIO_38_DIRECTION {inout} \ -CONFIG.PCW_MIO_38_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_38_PULLUP {disabled} \ -CONFIG.PCW_MIO_38_SLEW {fast} \ -CONFIG.PCW_MIO_39_DIRECTION {inout} \ -CONFIG.PCW_MIO_39_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_39_PULLUP {disabled} \ -CONFIG.PCW_MIO_39_SLEW {fast} \ -CONFIG.PCW_MIO_3_DIRECTION {inout} \ -CONFIG.PCW_MIO_3_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_3_PULLUP {disabled} \ -CONFIG.PCW_MIO_3_SLEW {fast} \ -CONFIG.PCW_MIO_40_DIRECTION {inout} \ -CONFIG.PCW_MIO_40_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_40_PULLUP {disabled} \ -CONFIG.PCW_MIO_40_SLEW {fast} \ -CONFIG.PCW_MIO_41_DIRECTION {inout} \ -CONFIG.PCW_MIO_41_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_41_PULLUP {disabled} \ -CONFIG.PCW_MIO_41_SLEW {fast} \ -CONFIG.PCW_MIO_42_DIRECTION {inout} \ -CONFIG.PCW_MIO_42_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_42_PULLUP {disabled} \ -CONFIG.PCW_MIO_42_SLEW {fast} \ -CONFIG.PCW_MIO_43_DIRECTION {inout} \ -CONFIG.PCW_MIO_43_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_43_PULLUP {disabled} \ -CONFIG.PCW_MIO_43_SLEW {fast} \ -CONFIG.PCW_MIO_44_DIRECTION {inout} \ -CONFIG.PCW_MIO_44_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_44_PULLUP {disabled} \ -CONFIG.PCW_MIO_44_SLEW {fast} \ -CONFIG.PCW_MIO_45_DIRECTION {inout} \ -CONFIG.PCW_MIO_45_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_45_PULLUP {disabled} \ -CONFIG.PCW_MIO_45_SLEW {fast} \ -CONFIG.PCW_MIO_46_DIRECTION {in} \ -CONFIG.PCW_MIO_46_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_46_PULLUP {disabled} \ -CONFIG.PCW_MIO_46_SLEW {slow} \ -CONFIG.PCW_MIO_47_DIRECTION {in} \ -CONFIG.PCW_MIO_47_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_47_PULLUP {disabled} \ -CONFIG.PCW_MIO_47_SLEW {slow} \ -CONFIG.PCW_MIO_48_DIRECTION {out} \ -CONFIG.PCW_MIO_48_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_48_PULLUP {disabled} \ -CONFIG.PCW_MIO_48_SLEW {slow} \ -CONFIG.PCW_MIO_49_DIRECTION {in} \ -CONFIG.PCW_MIO_49_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_49_PULLUP {disabled} \ -CONFIG.PCW_MIO_49_SLEW {slow} \ -CONFIG.PCW_MIO_4_DIRECTION {inout} \ -CONFIG.PCW_MIO_4_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_4_PULLUP {disabled} \ -CONFIG.PCW_MIO_4_SLEW {fast} \ -CONFIG.PCW_MIO_50_DIRECTION {inout} \ -CONFIG.PCW_MIO_50_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_50_PULLUP {disabled} \ -CONFIG.PCW_MIO_50_SLEW {slow} \ -CONFIG.PCW_MIO_51_DIRECTION {inout} \ -CONFIG.PCW_MIO_51_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_51_PULLUP {disabled} \ -CONFIG.PCW_MIO_51_SLEW {slow} \ -CONFIG.PCW_MIO_52_DIRECTION {out} \ -CONFIG.PCW_MIO_52_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_52_PULLUP {disabled} \ -CONFIG.PCW_MIO_52_SLEW {slow} \ -CONFIG.PCW_MIO_53_DIRECTION {inout} \ -CONFIG.PCW_MIO_53_IOTYPE {LVCMOS 1.8V} \ -CONFIG.PCW_MIO_53_PULLUP {disabled} \ -CONFIG.PCW_MIO_53_SLEW {slow} \ -CONFIG.PCW_MIO_5_DIRECTION {inout} \ -CONFIG.PCW_MIO_5_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_5_PULLUP {disabled} \ -CONFIG.PCW_MIO_5_SLEW {fast} \ -CONFIG.PCW_MIO_6_DIRECTION {out} \ -CONFIG.PCW_MIO_6_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_6_PULLUP {disabled} \ -CONFIG.PCW_MIO_6_SLEW {fast} \ -CONFIG.PCW_MIO_7_DIRECTION {out} \ -CONFIG.PCW_MIO_7_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_7_PULLUP {disabled} \ -CONFIG.PCW_MIO_7_SLEW {slow} \ -CONFIG.PCW_MIO_8_DIRECTION {out} \ -CONFIG.PCW_MIO_8_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_8_PULLUP {disabled} \ -CONFIG.PCW_MIO_8_SLEW {fast} \ -CONFIG.PCW_MIO_9_DIRECTION {inout} \ -CONFIG.PCW_MIO_9_IOTYPE {LVCMOS 3.3V} \ -CONFIG.PCW_MIO_9_PULLUP {disabled} \ -CONFIG.PCW_MIO_9_SLEW {slow} \ -CONFIG.PCW_MIO_TREE_PERIPHERALS {GPIO#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#GPIO#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#UART 1#UART 1#GPIO#GPIO#Enet 0#Enet 0} \ -CONFIG.PCW_MIO_TREE_SIGNALS {gpio[0]#qspi0_ss_b#qspi0_io[0]#qspi0_io[1]#qspi0_io[2]#qspi0_io[3]#qspi0_sclk#gpio[7]#gpio[8]#gpio[9]#gpio[10]#gpio[11]#gpio[12]#gpio[13]#gpio[14]#gpio[15]#tx_clk#txd[0]#txd[1]#txd[2]#txd[3]#tx_ctl#rx_clk#rxd[0]#rxd[1]#rxd[2]#rxd[3]#rx_ctl#data[4]#dir#stp#nxt#data[0]#data[1]#data[2]#data[3]#clk#data[5]#data[6]#data[7]#clk#cmd#data[0]#data[1]#data[2]#data[3]#wp#cd#tx#rx#gpio[50]#gpio[51]#mdc#mdio} \ -CONFIG.PCW_NAND_CYCLES_T_AR {1} \ -CONFIG.PCW_NAND_CYCLES_T_CLR {1} \ -CONFIG.PCW_NAND_CYCLES_T_RC {11} \ -CONFIG.PCW_NAND_CYCLES_T_REA {1} \ -CONFIG.PCW_NAND_CYCLES_T_RR {1} \ -CONFIG.PCW_NAND_CYCLES_T_WC {11} \ -CONFIG.PCW_NAND_CYCLES_T_WP {1} \ -CONFIG.PCW_NAND_GRP_D8_ENABLE {0} \ -CONFIG.PCW_NAND_GRP_D8_IO {} \ -CONFIG.PCW_NAND_PERIPHERAL_ENABLE {0} \ -CONFIG.PCW_NOR_CS0_T_CEOE {1} \ -CONFIG.PCW_NOR_CS0_T_PC {1} \ -CONFIG.PCW_NOR_CS0_T_RC {11} \ -CONFIG.PCW_NOR_CS0_T_TR {1} \ -CONFIG.PCW_NOR_CS0_T_WC {11} \ -CONFIG.PCW_NOR_CS0_T_WP {1} \ -CONFIG.PCW_NOR_CS0_WE_TIME {0} \ -CONFIG.PCW_NOR_CS1_T_CEOE {1} \ -CONFIG.PCW_NOR_CS1_T_PC {1} \ -CONFIG.PCW_NOR_CS1_T_RC {11} \ -CONFIG.PCW_NOR_CS1_T_TR {1} \ -CONFIG.PCW_NOR_CS1_T_WC {11} \ -CONFIG.PCW_NOR_CS1_T_WP {1} \ -CONFIG.PCW_NOR_CS1_WE_TIME {0} \ -CONFIG.PCW_NOR_GRP_A25_ENABLE {0} \ -CONFIG.PCW_NOR_GRP_A25_IO {} \ -CONFIG.PCW_NOR_GRP_CS1_ENABLE {0} \ -CONFIG.PCW_NOR_GRP_CS1_IO {} \ -CONFIG.PCW_NOR_GRP_SRAM_CS1_ENABLE {0} \ -CONFIG.PCW_NOR_GRP_SRAM_CS1_IO {} \ -CONFIG.PCW_NOR_NOR_IO {} \ -CONFIG.PCW_PLL_BYPASSMODE_ENABLE {0} \ -CONFIG.PCW_PRESET_BANK0_VOLTAGE {LVCMOS 3.3V} \ -CONFIG.PCW_PRESET_BANK1_VOLTAGE {LVCMOS 1.8V} \ -CONFIG.PCW_QSPI_GRP_FBCLK_ENABLE {0} \ -CONFIG.PCW_QSPI_GRP_FBCLK_IO {} \ -CONFIG.PCW_QSPI_GRP_SINGLE_SS_ENABLE {1} \ -CONFIG.PCW_QSPI_GRP_SINGLE_SS_IO {MIO 1 .. 6} \ -CONFIG.PCW_QSPI_GRP_SS1_ENABLE {0} \ -CONFIG.PCW_QSPI_GRP_SS1_IO {} \ -CONFIG.PCW_SD0_GRP_WP_ENABLE {1} \ -CONFIG.PCW_SD0_GRP_WP_IO {MIO 46} \ -CONFIG.PCW_SD0_PERIPHERAL_ENABLE {1} \ -CONFIG.PCW_SD0_SD0_IO {MIO 40 .. 45} \ -CONFIG.PCW_SD1_GRP_CD_ENABLE {0} \ -CONFIG.PCW_SD1_GRP_CD_IO {} \ -CONFIG.PCW_SD1_GRP_WP_ENABLE {0} \ -CONFIG.PCW_SD1_GRP_WP_IO {} \ -CONFIG.PCW_SDIO_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_SDIO_PERIPHERAL_DIVISOR0 {20} \ -CONFIG.PCW_SDIO_PERIPHERAL_FREQMHZ {50} \ -CONFIG.PCW_SDIO_PERIPHERAL_VALID {1} \ -CONFIG.PCW_SMC_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_SMC_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_SMC_PERIPHERAL_FREQMHZ {100} \ -CONFIG.PCW_SPI0_GRP_SS0_ENABLE {0} \ -CONFIG.PCW_SPI0_GRP_SS0_IO {} \ -CONFIG.PCW_SPI0_GRP_SS2_ENABLE {0} \ -CONFIG.PCW_SPI0_GRP_SS2_IO {} \ -CONFIG.PCW_SPI1_GRP_SS0_ENABLE {0} \ -CONFIG.PCW_SPI1_GRP_SS0_IO {} \ -CONFIG.PCW_SPI1_GRP_SS2_ENABLE {0} \ -CONFIG.PCW_SPI1_GRP_SS2_IO {} \ -CONFIG.PCW_SPI_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_SPI_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_SPI_PERIPHERAL_FREQMHZ {166.666666} \ -CONFIG.PCW_S_AXI_HP0_DATA_WIDTH {32} \ -CONFIG.PCW_S_AXI_HP1_DATA_WIDTH {64} \ -CONFIG.PCW_S_AXI_HP2_DATA_WIDTH {64} \ -CONFIG.PCW_S_AXI_HP3_DATA_WIDTH {64} \ -CONFIG.PCW_TPIU_PERIPHERAL_CLKSRC {External} \ -CONFIG.PCW_TPIU_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_TPIU_PERIPHERAL_FREQMHZ {200} \ -CONFIG.PCW_TRACE_GRP_16BIT_ENABLE {0} \ -CONFIG.PCW_TRACE_GRP_16BIT_IO {} \ -CONFIG.PCW_TRACE_GRP_32BIT_ENABLE {0} \ -CONFIG.PCW_TRACE_GRP_32BIT_IO {} \ -CONFIG.PCW_TRACE_GRP_8BIT_ENABLE {0} \ -CONFIG.PCW_TRACE_GRP_8BIT_IO {} \ -CONFIG.PCW_TTC0_CLK0_PERIPHERAL_CLKSRC {CPU_1X} \ -CONFIG.PCW_TTC0_CLK0_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_TTC0_CLK0_PERIPHERAL_FREQMHZ {133.333333} \ -CONFIG.PCW_TTC0_CLK1_PERIPHERAL_CLKSRC {CPU_1X} \ -CONFIG.PCW_TTC0_CLK1_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_TTC0_CLK1_PERIPHERAL_FREQMHZ {133.333333} \ -CONFIG.PCW_TTC0_CLK2_PERIPHERAL_CLKSRC {CPU_1X} \ -CONFIG.PCW_TTC0_CLK2_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_TTC0_CLK2_PERIPHERAL_FREQMHZ {133.333333} \ -CONFIG.PCW_TTC0_PERIPHERAL_ENABLE {1} \ -CONFIG.PCW_TTC0_TTC0_IO {EMIO} \ -CONFIG.PCW_TTC1_CLK0_PERIPHERAL_CLKSRC {CPU_1X} \ -CONFIG.PCW_TTC1_CLK0_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_TTC1_CLK0_PERIPHERAL_FREQMHZ {133.333333} \ -CONFIG.PCW_TTC1_CLK1_PERIPHERAL_CLKSRC {CPU_1X} \ -CONFIG.PCW_TTC1_CLK1_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_TTC1_CLK1_PERIPHERAL_FREQMHZ {133.333333} \ -CONFIG.PCW_TTC1_CLK2_PERIPHERAL_CLKSRC {CPU_1X} \ -CONFIG.PCW_TTC1_CLK2_PERIPHERAL_DIVISOR0 {1} \ -CONFIG.PCW_TTC1_CLK2_PERIPHERAL_FREQMHZ {133.333333} \ -CONFIG.PCW_TTC1_PERIPHERAL_ENABLE {0} \ -CONFIG.PCW_TTC1_TTC1_IO {} \ -CONFIG.PCW_UART0_PERIPHERAL_ENABLE {0} \ -CONFIG.PCW_UART0_UART0_IO {} \ -CONFIG.PCW_UART1_PERIPHERAL_ENABLE {1} \ -CONFIG.PCW_UART1_UART1_IO {MIO 48 .. 49} \ -CONFIG.PCW_UART_PERIPHERAL_CLKSRC {IO PLL} \ -CONFIG.PCW_UART_PERIPHERAL_DIVISOR0 {20} \ -CONFIG.PCW_UART_PERIPHERAL_FREQMHZ {50} \ -CONFIG.PCW_UART_PERIPHERAL_VALID {1} \ -CONFIG.PCW_UIPARAM_DDR_ADV_ENABLE {0} \ -CONFIG.PCW_UIPARAM_DDR_AL {0} \ -CONFIG.PCW_UIPARAM_DDR_BANK_ADDR_COUNT {3} \ -CONFIG.PCW_UIPARAM_DDR_BL {8} \ -CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY0 {0.41} \ -CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY1 {0.411} \ -CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY2 {0.341} \ -CONFIG.PCW_UIPARAM_DDR_BOARD_DELAY3 {0.358} \ -CONFIG.PCW_UIPARAM_DDR_BUS_WIDTH {32 Bit} \ -CONFIG.PCW_UIPARAM_DDR_CL {7} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_0_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PACKAGE_LENGTH {61.0905} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_1_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PACKAGE_LENGTH {61.0905} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_2_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PACKAGE_LENGTH {61.0905} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_3_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PACKAGE_LENGTH {61.0905} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_STOP_EN {0} \ -CONFIG.PCW_UIPARAM_DDR_COL_ADDR_COUNT {10} \ -CONFIG.PCW_UIPARAM_DDR_CWL {6} \ -CONFIG.PCW_UIPARAM_DDR_DEVICE_CAPACITY {2048 MBits} \ -CONFIG.PCW_UIPARAM_DDR_DQS_0_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQS_0_PACKAGE_LENGTH {68.4725} \ -CONFIG.PCW_UIPARAM_DDR_DQS_0_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DQS_1_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQS_1_PACKAGE_LENGTH {71.086} \ -CONFIG.PCW_UIPARAM_DDR_DQS_1_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DQS_2_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQS_2_PACKAGE_LENGTH {66.794} \ -CONFIG.PCW_UIPARAM_DDR_DQS_2_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DQS_3_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQS_3_PACKAGE_LENGTH {108.7385} \ -CONFIG.PCW_UIPARAM_DDR_DQS_3_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_0 {0.025} \ -CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_1 {0.028} \ -CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_2 {-0.009} \ -CONFIG.PCW_UIPARAM_DDR_DQS_TO_CLK_DELAY_3 {-0.061} \ -CONFIG.PCW_UIPARAM_DDR_DQ_0_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQ_0_PACKAGE_LENGTH {64.1705} \ -CONFIG.PCW_UIPARAM_DDR_DQ_0_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DQ_1_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQ_1_PACKAGE_LENGTH {63.686} \ -CONFIG.PCW_UIPARAM_DDR_DQ_1_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DQ_2_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQ_2_PACKAGE_LENGTH {68.46} \ -CONFIG.PCW_UIPARAM_DDR_DQ_2_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DQ_3_LENGTH_MM {0} \ -CONFIG.PCW_UIPARAM_DDR_DQ_3_PACKAGE_LENGTH {105.4895} \ -CONFIG.PCW_UIPARAM_DDR_DQ_3_PROPOGATION_DELAY {160} \ -CONFIG.PCW_UIPARAM_DDR_DRAM_WIDTH {16 Bits} \ -CONFIG.PCW_UIPARAM_DDR_ECC {Disabled} \ -CONFIG.PCW_UIPARAM_DDR_ENABLE {1} \ -CONFIG.PCW_UIPARAM_DDR_FREQ_MHZ {533.333313} \ -CONFIG.PCW_UIPARAM_DDR_HIGH_TEMP {Normal (0-85)} \ -CONFIG.PCW_UIPARAM_DDR_MEMORY_TYPE {DDR 3} \ -CONFIG.PCW_UIPARAM_DDR_PARTNO {MT41J128M16 HA-15E} \ -CONFIG.PCW_UIPARAM_DDR_ROW_ADDR_COUNT {14} \ -CONFIG.PCW_UIPARAM_DDR_SPEED_BIN {DDR3_1066F} \ -CONFIG.PCW_UIPARAM_DDR_TRAIN_DATA_EYE {1} \ -CONFIG.PCW_UIPARAM_DDR_TRAIN_READ_GATE {1} \ -CONFIG.PCW_UIPARAM_DDR_TRAIN_WRITE_LEVEL {1} \ -CONFIG.PCW_UIPARAM_DDR_T_FAW {45.0} \ -CONFIG.PCW_UIPARAM_DDR_T_RAS_MIN {36.0} \ -CONFIG.PCW_UIPARAM_DDR_T_RC {49.5} \ -CONFIG.PCW_UIPARAM_DDR_T_RCD {7} \ -CONFIG.PCW_UIPARAM_DDR_T_RP {7} \ -CONFIG.PCW_UIPARAM_DDR_USE_INTERNAL_VREF {1} \ -CONFIG.PCW_USB0_PERIPHERAL_ENABLE {1} \ -CONFIG.PCW_USB0_PERIPHERAL_FREQMHZ {60} \ -CONFIG.PCW_USB0_RESET_ENABLE {0} \ -CONFIG.PCW_USB0_RESET_IO {} \ -CONFIG.PCW_USB1_USB1_IO {} \ -CONFIG.preset {ZedBoard} \ - ] $processing_system7_0 - - # Need to retain value_src of defaults - set_property -dict [ list \ -CONFIG.PCW_ACT_CAN_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_DCI_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_ENET1_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_FPGA1_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_FPGA2_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_FPGA3_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_PCAP_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_SMC_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_SPI_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ACT_TPIU_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_APU_CLK_RATIO_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ARMPLL_CTRL_FBDIV.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN0_CAN0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN0_GRP_CLK_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN0_GRP_CLK_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN0_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN0_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN1_CAN1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN1_GRP_CLK_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN1_GRP_CLK_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN1_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN1_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN_PERIPHERAL_DIVISOR1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CAN_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CLK1_FREQ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CLK2_FREQ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CLK3_FREQ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CPU_CPU_6X4X_MAX_RANGE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CPU_CPU_PLL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CPU_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CPU_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_CRYSTAL_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DCI_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DCI_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DCI_PERIPHERAL_DIVISOR1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DCI_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDRPLL_CTRL_FBDIV.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_DDR_PLL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_HPRLPR_QUEUE_PARTITION.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_HPR_TO_CRITICAL_PRIORITY_LEVEL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_LPR_TO_CRITICAL_PRIORITY_LEVEL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PORT0_HPR_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PORT1_HPR_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PORT2_HPR_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PORT3_HPR_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_READPORT_0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_READPORT_1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_READPORT_2.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_READPORT_3.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_WRITEPORT_0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_WRITEPORT_1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_WRITEPORT_2.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_PRIORITY_WRITEPORT_3.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_RAM_HIGHADDR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_DDR_WRITE_TO_CRITICAL_PRIORITY_LEVEL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET0_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET0_PERIPHERAL_DIVISOR1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET0_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET0_RESET_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET0_RESET_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_ENET1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_GRP_MDIO_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_GRP_MDIO_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_PERIPHERAL_DIVISOR1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_RESET_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET1_RESET_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_ENET_RESET_POLARITY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_EN_4K_TIMER.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK0_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK1_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK1_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK1_PERIPHERAL_DIVISOR1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK2_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK2_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK2_PERIPHERAL_DIVISOR1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK3_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK3_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK3_PERIPHERAL_DIVISOR1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK_CLK0_BUF.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK_CLK1_BUF.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK_CLK2_BUF.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FCLK_CLK3_BUF.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FPGA2_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FPGA3_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_FPGA_FCLK0_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_GPIO_EMIO_GPIO_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_GPIO_EMIO_GPIO_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_GPIO_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C0_GRP_INT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C0_GRP_INT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C0_I2C0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C0_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C0_RESET_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C0_RESET_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C1_GRP_INT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C1_GRP_INT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C1_I2C1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C1_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C1_RESET_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C1_RESET_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C_RESET_POLARITY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_I2C_RESET_SELECT.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_CYCLES_T_AR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_CYCLES_T_CLR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_CYCLES_T_RC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_CYCLES_T_REA.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_CYCLES_T_RR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_CYCLES_T_WC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_CYCLES_T_WP.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_GRP_D8_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_GRP_D8_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_NAND_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NAND_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS0_T_CEOE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS0_T_PC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS0_T_RC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS0_T_TR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS0_T_WC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS0_T_WP.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS0_WE_TIME.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS1_T_CEOE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS1_T_PC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS1_T_RC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS1_T_TR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS1_T_WC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS1_T_WP.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_CS1_WE_TIME.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_A25_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_A25_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_CS0_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_CS0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_CS1_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_CS1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_SRAM_CS0_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_SRAM_CS0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_SRAM_CS1_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_SRAM_CS1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_SRAM_INT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_GRP_SRAM_INT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_NOR_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS0_T_CEOE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS0_T_PC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS0_T_RC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS0_T_TR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS0_T_WC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS0_T_WP.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS0_WE_TIME.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS1_T_CEOE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS1_T_PC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS1_T_RC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS1_T_TR.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS1_T_WC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS1_T_WP.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_NOR_SRAM_CS1_WE_TIME.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY2.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_BOARD_DELAY3.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_1.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_2.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PACKAGE_DDR_DQS_TO_CLK_DELAY_3.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PCAP_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PCAP_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PERIPHERAL_BOARD_PRESET.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PJTAG_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PJTAG_PJTAG_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PLL_BYPASSMODE_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_PRESET_BANK0_VOLTAGE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_GRP_FBCLK_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_GRP_FBCLK_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_GRP_IO1_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_GRP_IO1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_GRP_SS1_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_GRP_SS1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_QSPI_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD0_GRP_POW_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD0_GRP_POW_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_GRP_CD_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_GRP_CD_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_GRP_POW_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_GRP_POW_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_GRP_WP_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_GRP_WP_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SD1_SD1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SDIO_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SMC_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SMC_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SMC_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_GRP_SS0_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_GRP_SS0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_GRP_SS1_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_GRP_SS1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_GRP_SS2_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_GRP_SS2_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI0_SPI0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_GRP_SS0_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_GRP_SS0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_GRP_SS1_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_GRP_SS1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_GRP_SS2_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_GRP_SS2_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI1_SPI1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_SPI_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_S_AXI_HP1_DATA_WIDTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_S_AXI_HP2_DATA_WIDTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_S_AXI_HP3_DATA_WIDTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TPIU_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TPIU_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TPIU_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_16BIT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_16BIT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_2BIT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_2BIT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_32BIT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_32BIT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_4BIT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_4BIT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_8BIT_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_GRP_8BIT_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_INTERNAL_WIDTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TRACE_TRACE_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK0_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK0_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK0_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK1_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK1_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK1_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK2_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK2_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC0_CLK2_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK0_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK0_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK0_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK1_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK1_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK1_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK2_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK2_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_CLK2_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC1_TTC1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_TTC_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART0_BAUD_RATE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART0_GRP_FULL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART0_GRP_FULL_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART0_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART0_UART0_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART1_BAUD_RATE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART1_GRP_FULL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART1_GRP_FULL_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UART_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_ADV_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_AL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_BANK_ADDR_COUNT.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_BL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_BUS_WIDTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_0_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_0_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_1_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_1_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_2_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_2_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_3_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_3_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CLOCK_STOP_EN.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_COL_ADDR_COUNT.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_CWL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_0_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_0_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_0_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_1_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_1_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_1_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_2_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_2_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_2_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_3_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_3_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQS_3_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_0_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_0_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_0_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_1_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_1_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_1_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_2_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_2_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_2_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_3_LENGTH_MM.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_3_PACKAGE_LENGTH.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_DQ_3_PROPOGATION_DELAY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_ECC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_HIGH_TEMP.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_MEMORY_TYPE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_ROW_ADDR_COUNT.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_SPEED_BIN.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_TRAIN_DATA_EYE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_TRAIN_READ_GATE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_TRAIN_WRITE_LEVEL.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_T_RCD.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_UIPARAM_DDR_T_RP.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB0_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB0_RESET_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB0_RESET_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB1_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB1_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB1_RESET_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB1_RESET_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB1_USB1_IO.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USB_RESET_POLARITY.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_USE_CROSS_TRIGGER.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_WDT_PERIPHERAL_CLKSRC.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_WDT_PERIPHERAL_DIVISOR0.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_WDT_PERIPHERAL_ENABLE.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_WDT_PERIPHERAL_FREQMHZ.VALUE_SRC {DEFAULT} \ -CONFIG.PCW_WDT_WDT_IO.VALUE_SRC {DEFAULT} \ - ] $processing_system7_0 - - # Create interface connections - connect_bd_intf_net -intf_net mem_axi_1 [get_bd_intf_ports mem_axi] [get_bd_intf_pins processing_system7_0/S_AXI_HP0] - connect_bd_intf_net -intf_net processing_system7_0_DDR [get_bd_intf_ports DDR] [get_bd_intf_pins processing_system7_0/DDR] - connect_bd_intf_net -intf_net processing_system7_0_FIXED_IO [get_bd_intf_ports FIXED_IO] [get_bd_intf_pins processing_system7_0/FIXED_IO] - - # Create port connections - connect_bd_net -net processing_system7_0_FCLK_CLK0 [get_bd_ports clk] [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins processing_system7_0/S_AXI_HP0_ACLK] - connect_bd_net -net processing_system7_0_FCLK_RESET0_N [get_bd_ports resetn] [get_bd_pins processing_system7_0/FCLK_RESET0_N] - - # Create address segments - create_bd_addr_seg -range 0x20000000 -offset 0x00000000 [get_bd_addr_spaces mem_axi] [get_bd_addr_segs processing_system7_0/S_AXI_HP0/HP0_DDR_LOWOCM] SEG_processing_system7_0_HP0_DDR_LOWOCM - - # Perform GUI Layout - regenerate_bd_layout -layout_string { - guistr: "# # String gsaved with Nlview 6.6.5b 2016-09-06 bk=1.3687 VDI=39 GEI=35 GUI=JA:1.6 -# -string -flagsOSRD -preplace port DDR -pg 1 -y 40 -defaultsOSRD -preplace port resetn -pg 1 -y 200 -defaultsOSRD -preplace port FIXED_IO -pg 1 -y 60 -defaultsOSRD -preplace port clk -pg 1 -y 180 -defaultsOSRD -preplace port mem_axi -pg 1 -y 120 -defaultsOSRD -preplace inst processing_system7_0 -pg 1 -lvl 1 -y 120 -defaultsOSRD -preplace netloc processing_system7_0_DDR 1 1 1 400J -preplace netloc processing_system7_0_FCLK_RESET0_N 1 1 1 410J -preplace netloc processing_system7_0_FIXED_IO 1 1 1 420J -preplace netloc processing_system7_0_FCLK_CLK0 1 0 2 -50 0 410 -preplace netloc mem_axi_1 1 0 1 N -levelinfo -pg 1 -70 180 450 -top -10 -bot 910 -", -} - - # Restore current instance - current_bd_instance $oldCurInst - - save_bd_design -} -# End of create_root_design() - - -################################################################## -# MAIN FLOW -################################################################## - -create_root_design "" - - diff --git a/examples/zedboard/cva5.png b/examples/zedboard/cva5.png deleted file mode 100644 index cb8c11b..0000000 Binary files a/examples/zedboard/cva5.png and /dev/null differ diff --git a/examples/zedboard/cva5_small.png b/examples/zedboard/cva5_small.png deleted file mode 100644 index c880ad2..0000000 Binary files a/examples/zedboard/cva5_small.png and /dev/null differ diff --git a/examples/zedboard/cva5_wrapper.sv b/examples/zedboard/cva5_wrapper.sv deleted file mode 100644 index a5f8f68..0000000 --- a/examples/zedboard/cva5_wrapper.sv +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -import cva5_config::*; -import cva5_types::*; -import l2_config_and_types::*; - -module cva5_wrapper ( - input logic sys_clk, - input logic ext_reset, - - - inout [14:0]DDR_addr, - inout [2:0]DDR_ba, - inout DDR_cas_n, - inout DDR_ck_n, - inout DDR_ck_p, - inout DDR_cke, - inout DDR_cs_n, - inout [3:0]DDR_dm, - inout [31:0]DDR_dq, - inout [3:0]DDR_dqs_n, - inout [3:0]DDR_dqs_p, - inout DDR_odt, - inout DDR_ras_n, - inout DDR_reset_n, - inout DDR_we_n, - inout FIXED_IO_ddr_vrn, - inout FIXED_IO_ddr_vrp, - inout [53:0]FIXED_IO_mio, - inout FIXED_IO_ps_clk, - inout FIXED_IO_ps_porb, - inout FIXED_IO_ps_srstb, - - input logic sin, - output logic sout - - ); - - - parameter SCRATCH_MEM_KB = 16; - parameter MEM_LINES = (SCRATCH_MEM_KB*1024)/4; - - logic clk; - logic rst; - logic resetn; - - axi_interface m_axi(); - avalon_interface m_avalon(); - wishbone_interface dwishbone(); - wishbone_interface iwishbone(); - l2_requester_interface l2[L2_NUM_PORTS-1:0](); - l2_memory_interface mem(); - - logic interrupt; - - assign interrupt = 0; - - //mem axi - logic [31:0]mem_axi_araddr; - logic [1:0]mem_axi_arburst; - logic [3:0]mem_axi_arcache; - logic [5:0]mem_axi_arid; - logic [7:0]mem_axi_arlen; - logic [0:0]mem_axi_arlock; - logic [2:0]mem_axi_arprot; - logic [3:0]mem_axi_arqos; - logic mem_axi_arready; - logic [3:0]mem_axi_arregion; - logic [2:0]mem_axi_arsize; - logic mem_axi_arvalid; - logic [31:0]mem_axi_awaddr; - logic [1:0]mem_axi_awburst; - logic [3:0]mem_axi_awcache; - logic [5:0]mem_axi_awid; - logic [7:0]mem_axi_awlen; - logic [0:0]mem_axi_awlock; - logic [2:0]mem_axi_awprot; - logic [3:0]mem_axi_awqos; - logic mem_axi_awready; - logic [3:0]mem_axi_awregion; - logic [2:0]mem_axi_awsize; - logic mem_axi_awvalid; - logic [5:0]mem_axi_bid; - logic mem_axi_bready; - logic [1:0]mem_axi_bresp; - logic mem_axi_bvalid; - logic [31:0]mem_axi_rdata; - logic [5:0]mem_axi_rid; - logic mem_axi_rlast; - logic mem_axi_rready; - logic [1:0]mem_axi_rresp; - logic mem_axi_rvalid; - logic [31:0]mem_axi_wdata; - logic mem_axi_wlast; - logic mem_axi_wready; - logic [3:0]mem_axi_wstrb; - logic mem_axi_wvalid; - logic [5:0] mem_axi_wid; - - logic ACLK; - logic [31:0]bus_axi_araddr; - logic bus_axi_arready; - logic bus_axi_arvalid; - logic [31:0]bus_axi_awaddr; - logic bus_axi_awready; - logic bus_axi_awvalid; - logic bus_axi_bready; - logic [1:0]bus_axi_bresp; - logic bus_axi_bvalid; - logic [31:0]bus_axi_rdata; - logic bus_axi_rready; - logic [1:0]bus_axi_rresp; - logic bus_axi_rvalid; - logic [31:0]bus_axi_wdata; - logic bus_axi_wready; - logic [3:0]bus_axi_wstrb; - logic bus_axi_wvalid; - - logic processor_reset; - - - //Arbiter AXI interface - logic axi_arready; - logic axi_arvalid; - logic[31:0] axi_araddr; - logic[3:0] axi_arlen; - logic[2:0] axi_arsize; - logic[1:0] axi_arburst; - logic[2:0] axi_arprot; - logic[3:0] axi_arcache; - logic[3:0] axi_arid; - logic [1:0]axi_arlock; - logic [3:0]axi_arqos; - - //read data channel - logic axi_rready; - logic axi_rvalid; - logic[31:0] axi_rdata; - logic[1:0] axi_rresp; - logic axi_rlast; - logic[3:0] axi_rid; - - //write addr channel - logic axi_awready; - logic axi_awvalid; - logic [31:0] axi_awaddr; - logic [7:0] axi_awlen; - logic [2:0] axi_awsize; - logic [1:0] axi_awburst; - logic [1:0]axi_awlock; - logic [3:0]axi_awqos; - logic [5:0]axi_awid; - - logic[3:0] axi_awcache; - logic[2:0] axi_awprot; - - //write data - logic axi_wready; - logic axi_wvalid; - logic [31:0] axi_wdata; - logic [3:0] axi_wstrb; - logic axi_wlast; - logic [5:0]axi_wid; - - - //write response - logic axi_bready; - logic axi_bvalid; - logic [1:0] axi_bresp; - logic [5:0]axi_bid; - - - logic axi_clk; - logic processor_clk; - - assign axi_clk = clk; - - assign rst = processor_reset; - - - assign m_axi.arready = bus_axi_arready; - assign bus_axi_arvalid = m_axi.arvalid; - assign bus_axi_araddr = m_axi.araddr[12:0]; - - - //read data - assign bus_axi_rready = m_axi.rready; - assign m_axi.rvalid = bus_axi_rvalid; - assign m_axi.rdata = bus_axi_rdata; - assign m_axi.rresp = bus_axi_rresp; - - //Write channel - //write address - assign m_axi.awready = bus_axi_awready; - assign bus_axi_awaddr = m_axi.awaddr[12:0]; - assign bus_axi_awvalid = m_axi.awvalid; - - - //write data - assign m_axi.wready = bus_axi_wready; - assign bus_axi_wvalid = m_axi. wvalid; - assign bus_axi_wdata = m_axi.wdata; - assign bus_axi_wstrb = m_axi.wstrb; - - //write response - assign bus_axi_bready = m_axi.bready; - assign m_axi.bvalid = bus_axi_bvalid; - assign m_axi.bresp = bus_axi_bresp; - - - local_memory_interface instruction_bram(); - local_memory_interface data_bram(); - - cva5 cpu(.*, .l2(l2[0])); - - //design_2 infra(.*); - - generate - if (EXAMPLE_CONFIG.MODES == MSU || EXAMPLE_CONFIG.INCLUDE_ICACHE || EXAMPLE_CONFIG.INCLUDE_DCACHE) begin - l2_arbiter l2_arb (.*, .request(l2)); - axi_to_arb l2_to_mem (.*, .l2(mem)); - end - endgenerate - - //arm proc(.*); - byte_en_bram #(MEM_LINES, "/home/ematthew/Research/RISCV/software2/riscv-tools/riscv-tests/benchmarks/fft.riscv.hw_init", 1) inst_data_ram ( - .clk(clk), - .addr_a(instruction_bram.addr[$clog2(MEM_LINES)- 1:0]), - .en_a(instruction_bram.en), - .be_a(instruction_bram.be), - .data_in_a(instruction_bram.data_in), - .data_out_a(instruction_bram.data_out), - - .addr_b(data_bram.addr[$clog2(MEM_LINES)- 1:0]), - .en_b(data_bram.en), - .be_b(data_bram.be), - .data_in_b(data_bram.data_in), - .data_out_b(data_bram.data_out) - ); - -endmodule diff --git a/examples/zedboard/dhrystone.riscv.hw_init b/examples/zedboard/dhrystone.riscv.hw_init deleted file mode 100644 index ce18d73..0000000 --- a/examples/zedboard/dhrystone.riscv.hw_init +++ /dev/null @@ -1,32768 +0,0 @@ -00000093 -00000113 -00000193 -00000213 -00000293 -00000313 -00000393 -00000413 -00000493 -00000513 -00000593 -00000613 -00000693 -00000713 -00000793 -00000813 -00000893 -00000913 -00000993 -00000a13 -00000a93 -00000b13 -00000b93 -00000c13 -00000c93 -00000d13 -00000d93 -00000e13 -00000e93 -00000f13 -00000f93 -0001e2b7 -3002a073 -00100293 -01f29293 -0002c663 -00100513 -ffdff06f -00000297 -04428293 -30529073 -00005197 -c7818193 -00007217 -cf720213 -fc027213 -f1402573 -00100593 -00b57063 -00b51613 -00c20233 -00150113 -00b11113 -00410133 -6a10106f -ef010113 -00112223 -00212423 -00312623 -00412823 -00512a23 -00612c23 -00712e23 -02812023 -02912223 -02a12423 -02b12623 -02c12823 -02d12a23 -02e12c23 -02f12e23 -05012023 -05112223 -05212423 -05312623 -05412823 -05512a23 -05612c23 -05712e23 -07812023 -07912223 -07a12423 -07b12623 -07c12823 -07d12a23 -07e12c23 -07f12e23 -34202573 -341025f3 -00010613 -5ed010ef -34151073 -000022b7 -80028293 -3002a073 -00412083 -00812103 -00c12183 -01012203 -01412283 -01812303 -01c12383 -02012403 -02412483 -02812503 -02c12583 -03012603 -03412683 -03812703 -03c12783 -04012803 -04412883 -04812903 -04c12983 -05012a03 -05412a83 -05812b03 -05c12b83 -06012c03 -06412c83 -06812d03 -06c12d83 -07012e03 -07412e83 -07812f03 -07c12f83 -11010113 -30200073 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00250513 -00b505b3 -00b62023 -00008067 -00560713 -0c800813 -03070833 -00261613 -00271893 -00c807b3 -01150533 -00f587b3 -00d52023 -06e52c23 -00d52223 -0107a683 -00e7aa23 -00e7ac23 -00168713 -00e7a823 -010585b3 -00052703 -00c585b3 -000017b7 -00b785b3 -fae5aa23 -00500713 -86e1a223 -00008067 -0ff57793 -0ff5f593 -00b78663 -00000513 -00008067 -00100513 -84f18ea3 -00008067 -ff010113 -00812423 -00912223 -00050413 -00058493 -00112623 -0034c583 -00244503 -fc1ff0ef -fe051ae3 -00048593 -00040513 -769010ef -00000793 -00a05863 -00a00693 -00100793 -86d1a223 -00c12083 -00812403 -00412483 -00078513 -01010113 -00008067 -ffe50513 -00153513 -00008067 -ff010113 -00812423 -00912223 -00112623 -00050413 -00058493 -fddff0ef -04050e63 -00200793 -0084a023 -06f40063 -0287e663 -00040863 -8641a703 -06400793 -06e7d463 -0004a023 -00c12083 -00812403 -00412483 -01010113 -00008067 -00400713 -fee414e3 -00c12083 -00812403 -00f4a023 -00412483 -01010113 -00008067 -00300793 -00f4a023 -00200793 -faf414e3 -00c12083 -00812403 -00100793 -00f4a023 -00412483 -01010113 -00008067 -00c12083 -00812403 -00300793 -00f4a023 -00412483 -01010113 -00008067 -fe010113 -00b12223 -00c12423 -00d12623 -00e12823 -00f12a23 -01012c23 -01112e23 -02010113 -00008067 -600017b7 -00300713 -00e7a623 -00008067 -0001c637 -05f5e5b7 -ff010113 -20060613 -10058593 -60000537 -00112623 -4e9000ef -00c12083 -01010113 -fc9ff06f -ff010113 -c80027f3 -c0002773 -c80026f3 -fed79ae3 -00e12423 -00f12623 -00812503 -00c12583 -01010113 -00008067 -ff010113 -c82027f3 -c0202773 -c82026f3 -fed79ae3 -00e12423 -00f12623 -00812503 -00c12583 -01010113 -00008067 -ff010113 -b80027f3 -b0002773 -b80026f3 -fed79ae3 -00e12423 -00f12623 -00812503 -00c12583 -01010113 -00008067 -85d1c703 -04100793 -00f70463 -00008067 -00052783 -8641a703 -00978793 -40e787b3 -00f52023 -00008067 -86c1a603 -00060863 -00062703 -00e52023 -86c1a603 -8641a583 -00c60613 -00a00513 -d11ff06f -ff010113 -01212023 -86c1a783 -00812423 -00052403 -0007a703 -0047af03 -0087ae83 -0107ae03 -0147a303 -0187a883 -01c7a803 -0247a583 -0287a603 -02c7a683 -00912223 -00050493 -0207a503 -00112623 -00e42023 -0004a703 -00500793 -02a42023 -01e42223 -01d42423 -01c42823 -00642a23 -01142c23 -01042e23 -02b42223 -02c42423 -02d42623 -00f4a623 -00040513 -00f42623 -00e42023 -f4dff0ef -00442783 -08078063 -0004a783 -00c12083 -00812403 -0007af83 -0047af03 -0087ae83 -00c7ae03 -0107a303 -0147a883 -0187a803 -01c7a583 -0207a603 -0247a683 -0287a703 -02c7a783 -01f4a023 -01e4a223 -01d4a423 -01c4a623 -0064a823 -0114aa23 -0104ac23 -00b4ae23 -02c4a023 -02d4a223 -02e4a423 -02f4a623 -00012903 -00412483 -01010113 -00008067 -0084a503 -00840593 -00600793 -00f42623 -ce5ff0ef -86c1a783 -00c42503 -00c40613 -0007a783 -00c12083 -00412483 -00f42023 -00812403 -00012903 -00a00593 -01010113 -bb5ff06f -85d1c783 -8601a683 -fbf78793 -0017b793 -00d7e7b3 -86f1a023 -04200713 -84e18e23 -00008067 -04100713 -84e18ea3 -8601a023 -00008067 -60001737 -01472783 -0207f793 -fe078ce3 -0ff57513 -00a72023 -00000513 -00008067 -0005a783 -00a78023 -0005a783 -00178793 -00f5a023 -00008067 -eb010113 -13612823 -80004b37 -11cb0793 -14912223 -13912223 -13a12023 -11b12e23 -00050c93 -00058d13 -02500d93 -00900493 -14112623 -14812423 -15212023 -13312e23 -13412c23 -13512a23 -13712623 -13812423 -00c12423 -00f12623 -0200006f -06078463 -000ca703 -001d0d13 -00f70023 -000ca783 -00178793 -00fca023 -000d4783 -ffb790e3 -001d4683 -001d0593 -00058713 -02000a93 -fff00413 -fff00a13 -00000513 -fdd68793 -0ff7f793 -05500613 -00170d13 -06f66a63 -00c12603 -00279793 -00c787b3 -0007a783 -00078067 -14c12083 -14812403 -14412483 -14012903 -13c12983 -13812a03 -13412a83 -13012b03 -12c12b83 -12812c03 -12412c83 -12012d03 -11c12d83 -15010113 -00008067 -00068a93 -00174683 -05500613 -000d0713 -fdd68793 -0ff7f793 -00170d13 -f8f67ae3 -000ca783 -00058d13 -02500713 -00e78023 -000ca783 -00178793 -00fca023 -f3dff06f -00174603 -fd068413 -000d0713 -fd060793 -00060693 -02f4e663 -00241793 -00878433 -00170713 -00141413 -00c40433 -00074603 -fd040413 -fd060793 -00060693 -fcf4fee3 -f00a5ee3 -00040a13 -fff00413 -f11ff06f -00174683 -000d0713 -f05ff06f -000ca783 -f89ff06f -00812783 -00174683 -000d0713 -0007a403 -00478793 -00f12423 -fc5ff06f -000ca703 -03000693 -00812783 -00d70023 -000ca703 -00478793 -01000b93 -00170693 -00dca023 -07800693 -00d700a3 -000ca403 -00012223 -00140413 -008ca023 -00812703 -00000913 -00072c03 -00f12423 -000b8613 -00000693 -000c0513 -00090593 -2fc010ef -00000793 -00a12823 -25278063 -01410b13 -00100993 -000b8613 -00000693 -000c0513 -00090593 -635000ef -000b8613 -00000693 -00050c13 -00058913 -2c0010ef -00412703 -00ab2023 -00098793 -004b0b13 -00198993 -fd2712e3 -fd7c70e3 -0149de63 -01540023 -000ca403 -fffa0a13 -00140413 -008ca023 -ff49c6e3 -00279793 -01010713 -00f707b3 -0280006f -03070713 -00e40023 -000ca403 -01010693 -ffc78713 -00140413 -008ca023 -daf68ce3 -00070793 -0007a703 -fce4fce3 -05770713 -fd5ff06f -00100793 -1aa7c063 -00812703 -00072503 -00470793 -00f12423 -41f55913 -000ca403 -1a094e63 -00050c13 -00a00b93 -00012223 -f05ff06f -01000b93 -00012223 -00100793 -000ca403 -12a7c663 -00812783 -00478793 -ed5ff06f -00174683 -00150513 -000d0713 -d65ff06f -fffa4793 -41f7d793 -00174683 -00fa7a33 -000d0713 -d4dff06f -00812683 -000ca783 -0006a703 -00468693 -00d12423 -00e78023 -000ca783 -00178793 -00fca023 -d01ff06f -00812783 -0007a903 -00478993 -14090e63 -0b405663 -02d00793 -06fa9a63 -00094783 -02078e63 -00044863 -fff40413 -fff00713 -02e40463 -000ca703 -00190913 -fffa0a13 -00f70023 -000ca783 -00178793 -00fca023 -00094783 -fc0798e3 -03405263 -000ca783 -02000713 -00e78023 -000ca783 -fffa0a13 -00178793 -00fca023 -fe0a16e3 -01312423 -c7dff06f -800047b7 -11478913 -00040593 -00090513 -0dd010ef -40aa0a33 -03405063 -000ca783 -01578023 -000ca783 -fffa0a13 -00178793 -00fca023 -fe0a16e3 -00094783 -f60792e3 -01312423 -c35ff06f -00812783 -00778993 -ff89f993 -00898793 -0009ac03 -0049a903 -00f12423 -da9ff06f -dd7c72e3 -00100713 -00100993 -e14744e3 -e1dff06f -00812783 -00778993 -ff89f993 -00898793 -0009a503 -0049a903 -00f12423 -e5dff06f -00800b93 -00012223 -e71ff06f -00a00b93 -00012223 -e65ff06f -02d00793 -00f40023 -000ca403 -00a037b3 -41200933 -00140413 -40a00c33 -40f90933 -00a00b93 -00012223 -008ca023 -d2dff06f -01405663 -02d00793 -f0fa9ae3 -800047b7 -11478913 -02800793 -ea5ff06f -eb010113 -13612823 -80004b37 -274b0793 -15212023 -13312e23 -13912223 -13a12023 -11b12e23 -00050c93 -02500d93 -60001d37 -00900913 -00000993 -14112623 -14812423 -14912223 -13412c23 -13512a23 -13712623 -13812423 -00b12223 -00f12423 -000cc683 -03b68263 -1a068263 -001c8c93 -014d2703 -02077713 -fe070ce3 -00dd2023 -000cc683 -ffb692e3 -001cc303 -001c8613 -00060693 -02000a13 -fff00593 -fff00413 -00000513 -fdd30713 -0ff77713 -05500793 -00168c93 -00e7ec63 -00812783 -00271713 -00f70733 -00072703 -00070067 -014d2703 -02077713 -fe070ce3 -00060c93 -01bd2023 -f81ff06f -014d2703 -02077713 -fe070ce3 -03000793 -00fd2023 -014d2703 -02077713 -fe070ce3 -00412783 -01000a93 -00478693 -07800793 -00fd2023 -00412783 -00000493 -0007ab83 -00d12223 -000a8613 -00000693 -000b8513 -00048593 -6e5000ef -00a12823 -34998863 -01410b13 -00100c13 -000a8613 -00000693 -000b8513 -00048593 -221000ef -00000693 -000a8613 -00050b93 -00058493 -6ad000ef -00ab2023 -000c0693 -004b0b13 -001c0c13 -fc9994e3 -fd5bf2e3 -008c5e63 -014d2703 -02077713 -fe070ce3 -fff40413 -014d2023 -fe8c46e3 -00269613 -01010793 -00c78633 -00062703 -05700693 -00e96463 -03000693 -00d706b3 -014d2703 -02077713 -fe070ce3 -0ff6f713 -00ed2023 -01010793 -ffc60713 -e6c78ee3 -00070613 -fc9ff06f -014d2703 -02077713 -ee0712e3 -014d2703 -02077713 -fe0706e3 -ed5ff06f -14c12083 -14812403 -14412483 -14012903 -13c12983 -13812a03 -13412a83 -13012b03 -12c12b83 -12812c03 -12412c83 -12012d03 -11c12d83 -15010113 -00008067 -00030a13 -0016c303 -000c8693 -e51ff06f -0016ce03 -fd030593 -000c8693 -fd0e0713 -000e0313 -02e96663 -00259713 -00b705b3 -00168693 -00159593 -01c585b3 -0006ce03 -fd058593 -fd0e0713 -000e0313 -fce97ee3 -e00456e3 -00058413 -fff00593 -e01ff06f -0016c303 -000c8693 -df5ff06f -00412783 -0007a683 -00478493 -20068a63 -0a805663 -02d00713 -06ea1663 -0006c603 -02060c63 -0005c863 -fff58593 -fff00793 -02f58263 -014d2703 -02077713 -fe070ce3 -00168693 -00cd2023 -0006c603 -fff40413 -fc061ae3 -02805063 -014d2703 -02077713 -fe070ce3 -02000793 -fff40413 -00fd2023 -fe0414e3 -00912223 -d35ff06f -800047b7 -11478693 -00068513 -00b12623 -00d12223 -4ac010ef -40a40433 -00412683 -00c12583 -00805e63 -014d2703 -02077713 -fe070ce3 -fff40413 -014d2023 -fe0416e3 -0006c603 -f60612e3 -00912223 -ce5ff06f -00412783 -0007a683 -00478493 -014d2703 -02077713 -fe070ce3 -0ff6f713 -00912223 -00ed2023 -cbdff06f -00100713 -00412783 -0ea74c63 -0007ae83 -00478493 -00912223 -000e8513 -41fed713 -00074a63 -00050b93 -00070493 -00a00a93 -d51ff06f -014d2683 -0206f693 -fe068ce3 -00a036b3 -40e00733 -40d704b3 -02d00693 -40a00bb3 -00a00a93 -00dd2023 -d25ff06f -0016c303 -00150513 -000c8693 -c91ff06f -00412783 -0016c303 -000c8693 -0007a583 -00478793 -00f12223 -e69ff06f -01000a93 -00100713 -00412783 -02a74a63 -00478693 -cc0518e3 -0007ab83 -00000493 -00d12223 -cd1ff06f -fff44713 -41f75713 -0016c303 -00e47433 -000c8693 -c35ff06f -00778493 -ff84f793 -0007ab83 -0047a483 -00878793 -00f12223 -c9dff06f -cb5bfae3 -00100713 -00000693 -00100c13 -ce8748e3 -d05ff06f -00778493 -ff84f493 -00848793 -0004a503 -0044a703 -00f12223 -f09ff06f -00800a93 -f71ff06f -00a00a93 -f69ff06f -00805663 -02d00713 -e4ea1ae3 -800047b7 -11478693 -02800613 -dedff06f -00001737 -01470713 -00e50733 -00072783 -0207f793 -fe078ce3 -000017b7 -00f50533 -00b52023 -00008067 -00001737 -01470713 -00e50733 -00072783 -0017f793 -fe078ce3 -000017b7 -00f50533 -00052503 -0ff57513 -00008067 -00461613 -000016b7 -00165793 -00b787b3 -00c68713 -00e50733 -02c7d633 -00072583 -00d50833 -0ff00893 -0805e793 -00f72023 -00468693 -00865793 -01182023 -0ff7f793 -00d50533 -00f52023 -0ff67613 -00c82023 -00b72023 -00008067 -00000513 -00008067 -00a00013 -0000006f -00008067 -00008067 -00050463 -0000006f -00008067 -fe010113 -00812c23 -00912a23 -00020493 -00020413 -40848433 -01312623 -00058993 -800075b7 -00040613 -d6458593 -01212823 -00050913 -00020513 -00112e23 -01412423 -00020a13 -679000ef -00020613 -40960633 -00000593 -008a0533 -781000ef -00098593 -00090513 -f91ff0ef -00000593 -00000513 -1f4010ef -f71ff0ef -fc010113 -02410313 -02b12223 -00030593 -00112e23 -02c12423 -02d12623 -02e12823 -02f12a23 -03012c23 -03112e23 -00612623 -99dff0ef -01c12083 -00000513 -04010113 -00008067 -fb010113 -03810313 -02812423 -00a12623 -00050413 -02c12c23 -00c10513 -00030613 -02112623 -04f12223 -02d12e23 -04e12023 -05012423 -05112623 -00612e23 -c4cff0ef -00c12783 -00078023 -00c12503 -02c12083 -40850533 -02812403 -05010113 -00008067 -00000813 -1405ce63 -0006da63 -00c03733 -40d007b3 -40e786b3 -40c00633 -00068793 -00060893 -00050e13 -00058e93 -0c069a63 -14c5f463 -00010737 -20e66c63 -010007b7 -42f66863 -01865693 -01800793 -80004737 -3cc70713 -00d70733 -00074703 -02000693 -00f707b3 -40f68333 -00f68c63 -006595b3 -00f557b3 -006618b3 -00b7eeb3 -00651e33 -0108d613 -02ced7b3 -01089513 -01055513 -010e5693 -02cefeb3 -02f507b3 -010e9e93 -00dee733 -00f77a63 -01170733 -01176663 -00f77463 -01170733 -40f70733 -02c756b3 -010e1793 -0107d793 -02c77733 -02d50533 -01071713 -00f767b3 -14a7e063 -40a78533 -00655533 -00000593 -00080a63 -00a037b3 -40b005b3 -40f585b3 -40a00533 -00008067 -00050713 -fed5e2e3 -000107b7 -14f6ee63 -010007b7 -34f6e863 -0186d313 -01800893 -800047b7 -3cc78793 -006787b3 -0007ce03 -02000793 -011e0e33 -41c78333 -1dc79663 -00b6e463 -00c56a63 -40c50733 -40d585b3 -00e53533 -40a585b3 -00070513 -f8dff06f -00a037b3 -40b005b3 -40f585b3 -40a00533 -fff00813 -e95ff06f -00061663 -00100893 -02d8d8b3 -00010737 -0ae8e863 -010007b7 -2cf8e463 -0188d693 -01800793 -80004737 -3cc70713 -00d70733 -00074703 -02000693 -00f707b3 -40f68333 -0cf69263 -01089e93 -411585b3 -0108d613 -010ede93 -02c5d6b3 -010e5713 -02c5f5b3 -03d686b3 -01059593 -00e5e733 -00d77863 -01170733 -01176463 -2ad76463 -40d70733 -02c75533 -010e1e13 -010e5e13 -02c77733 -03d50533 -01071713 -01c767b3 -00a7fa63 -011787b3 -0117e663 -00a7f463 -011787b3 -40a78533 -00655533 -00000593 -eb5ff06f -0ff00713 -00088693 -f5177ee3 -0088d693 -00800793 -f51ff06f -0ff00713 -00060693 -dec77ae3 -00865693 -00800793 -de9ff06f -0ff00793 -20d7f863 -0086d313 -00800893 -ea9ff06f -006898b3 -00f5d733 -0108d613 -02c756b3 -01089e93 -00f557b3 -006595b3 -010ede93 -02c77733 -00b7e5b3 -02de87b3 -0105df13 -00651e33 -01071693 -01e6e6b3 -00f6fa63 -011686b3 -0116e663 -00f6f463 -011686b3 -40f686b3 -02c6d733 -01059793 -0107d793 -02c6f6b3 -02ee8733 -01069593 -00f5e5b3 -00e5fa63 -011585b3 -0115e663 -00e5f463 -011585b3 -40e585b3 -ec9ff06f -01c657b3 -006696b3 -00d7ef33 -01c5d8b3 -010f5293 -01c557b3 -0258deb3 -006595b3 -00b7e5b3 -010f1713 -01075713 -0258f7b3 -03d703b3 -0105d893 -00661633 -00651533 -01079793 -0117e6b3 -0076fe63 -01e686b3 -fffe8793 -13e6ea63 -1276f863 -ffee8e93 -01e686b3 -407686b3 -0256d7b3 -01059593 -0105d593 -0256f6b3 -02f70fb3 -01069693 -00b6e733 -01f77e63 -01e70733 -fff78693 -0fe76863 -0ff77663 -ffe78793 -01e70733 -010e9e93 -000103b7 -00feeeb3 -fff38893 -011ef6b3 -01065593 -010ede93 -011678b3 -031682b3 -031e88b3 -02b686b3 -0102d793 -02be8eb3 -011686b3 -00d787b3 -41f70733 -0117f463 -007e8eb3 -000106b7 -fff68693 -0107d593 -00d7f7b3 -01079793 -00d2f2b3 -01d58eb3 -005787b3 -03d76863 -03d70463 -40f507b3 -00f535b3 -41d70733 -40b705b3 -01c59e33 -0067d533 -00ae6533 -0065d5b3 -cb1ff06f -fcf57ee3 -40c78633 -00c7b7b3 -01e787b3 -40fe8eb3 -00060793 -fc5ff06f -0108d693 -01000793 -d3dff06f -0106d313 -01000893 -cb5ff06f -01065693 -01000793 -bd5ff06f -00068313 -00000893 -c9dff06f -00068793 -f1dff06f -00078e93 -ed9ff06f -01170733 -d59ff06f -00068e13 -00060893 -00050313 -00058813 -0c069e63 -12c5fa63 -000107b7 -20f66a63 -010007b7 -42f66663 -01865713 -01800e13 -800047b7 -3cc78793 -00e787b3 -0007c783 -02000713 -01c78e33 -41c707b3 -01c70c63 -00f59833 -01c55e33 -00f618b3 -010e6833 -00f51333 -0108d593 -02b85533 -01089693 -0106d693 -01035793 -02b87733 -02a68633 -01071713 -00f76833 -00c87c63 -01180833 -fff50793 -01186463 -3ec86863 -00078513 -40c80833 -02b85633 -01031313 -01035313 -02b87833 -02c686b3 -01081813 -00686833 -00d87e63 -01088833 -fff60793 -01186663 -ffe60613 -00d86463 -00078613 -01051513 -00c56533 -00000593 -00008067 -00d5f863 -00000593 -00000513 -00008067 -000107b7 -14f6e463 -010007b7 -32f6e263 -0186d713 -01800813 -800047b7 -3cc78793 -00e787b3 -0007ce03 -02000793 -010e0e33 -41c78eb3 -1dc79863 -32b6e463 -00c53633 -00164513 -00000593 -00008067 -00061663 -00100793 -02c7d8b3 -000107b7 -0cf8e063 -010007b7 -2ef8e263 -0188d713 -01800e13 -800047b7 -3cc78793 -00e787b3 -0007c683 -02000793 -01c68e33 -41c78fb3 -0dc79a63 -01089f13 -41158733 -0108de93 -010f5f13 -00100593 -03d75533 -01035793 -03d77733 -03e506b3 -01071713 -00f767b3 -00d7fc63 -011787b3 -fff50713 -0117e463 -2cd7e663 -00070513 -40d787b3 -03d7d633 -01031313 -01035313 -03d7f7b3 -03e60f33 -01079793 -0067e7b3 -01e7fe63 -00f887b3 -fff60713 -0117e663 -ffe60613 -01e7e463 -00070613 -01051513 -00c56533 -00008067 -0ff00793 -00088713 -f517f6e3 -0088d713 -00800e13 -f41ff06f -0ff00793 -00060713 -dec7fce3 -00865713 -00800e13 -dedff06f -0ff00793 -1ed7f663 -0086d713 -00800813 -ebdff06f -01f898b3 -01c5d6b3 -0108de93 -03d6d633 -01089f13 -01f59833 -01c55e33 -010f5f13 -03d6f6b3 -010e6733 -02cf07b3 -01075593 -01f51333 -01069693 -00b6e6b3 -00f6fe63 -011686b3 -fff60593 -1d16ee63 -1cf6fc63 -ffe60613 -011686b3 -40f686b3 -03d6d7b3 -01071e13 -010e5e13 -03d6f6b3 -02ff0533 -01069713 -01c76733 -00a77e63 -01170733 -fff78693 -19176863 -18a77663 -ffe78793 -01170733 -01061593 -40a70733 -00f5e5b3 -ea5ff06f -01c657b3 -01d696b3 -00d7e6b3 -01c5d333 -0106d713 -02e358b3 -01d59833 -01069593 -01c55e33 -0105d593 -02e37333 -010e6833 -03158e33 -01085793 -01d61633 -01031313 -00f367b3 -01c7fe63 -00d787b3 -fff88313 -12d7e463 -13c7f263 -ffe88893 -00d787b3 -41c787b3 -02e7d333 -01081813 -01085813 -02e7f7b3 -026585b3 -01079793 -0107e833 -00b87e63 -00d80833 -fff30793 -0cd86e63 -0cb87c63 -ffe30313 -00d80833 -01089893 -00010f37 -0068e8b3 -ffff0793 -00f8f733 -0108d313 -00f677b3 -01065613 -02f70e33 -02c70733 -02f307b3 -010e5693 -02c30633 -00f70733 -00e68733 -40b80833 -00f77463 -01e60633 -01075313 -00c30633 -02c86a63 -00c80863 -00088513 -00000593 -00008067 -000106b7 -fff68693 -00d77733 -01071793 -00de7e33 -01d51533 -01c787b3 -fcf57ce3 -fff88513 -00000593 -00008067 -0106d713 -01000813 -ce1ff06f -00068713 -00000813 -cd5ff06f -0108d713 -01000e13 -d21ff06f -01065713 -01000e13 -bd9ff06f -00000593 -00100513 -00008067 -00078313 -f31ff06f -00068793 -e7dff06f -00030893 -ee5ff06f -00058613 -e31ff06f -ffe50513 -01180833 -c11ff06f -ffe50513 -011787b3 -d35ff06f -00068793 -00060813 -00050893 -00058713 -00058e13 -0c069063 -12c5f063 -00010737 -1ee66863 -010007b7 -40f66463 -01865693 -01800793 -80004737 -3cc70713 -00d70733 -00074703 -02000693 -00f707b3 -40f68333 -00f68c63 -006595b3 -00f557b3 -00661833 -00b7ee33 -006518b3 -01085613 -02ce57b3 -01081513 -01055513 -0108d693 -02ce7e33 -02f507b3 -010e1e13 -00de6733 -00f77a63 -01070733 -01076663 -00f77463 -01070733 -40f70733 -02c756b3 -01089793 -0107d793 -02c77733 -02d50533 -01071713 -00f767b3 -10a7ec63 -40a78533 -00655533 -00000593 -00008067 -00050813 -fed5ece3 -000107b7 -14f6e463 -010007b7 -32f6ee63 -0186d313 -01800893 -800047b7 -3cc78793 -006787b3 -0007c303 -02000793 -01130333 -406788b3 -1a679c63 -00b6e463 -00c56a63 -40c50833 -40d585b3 -01053733 -40e58733 -00080513 -00070593 -00008067 -00061663 -00100713 -02c75833 -00010737 -0ae86863 -010007b7 -2cf86463 -01885693 -01800793 -80004737 -3cc70713 -00d70733 -00074703 -02000693 -00f707b3 -40f68333 -0cf69263 -01081e13 -410585b3 -01085613 -010e5e13 -02c5d6b3 -0108d713 -02c5f5b3 -03c686b3 -01059593 -00e5e733 -00d77863 -01070733 -01076463 -2ad76463 -40d70733 -02c75533 -01089893 -0108d893 -02c77733 -03c50533 -01071713 -011767b3 -00a7fa63 -010787b3 -0107e663 -00a7f463 -010787b3 -40a78533 -00655533 -00000593 -00008067 -0ff00713 -00080693 -f5077ee3 -00885693 -00800793 -f51ff06f -0ff00713 -00060693 -e0c77ee3 -00865693 -00800793 -e11ff06f -0ff00793 -20d7f863 -0086d313 -00800893 -ebdff06f -00681833 -00f5d733 -01085613 -02c756b3 -01081e13 -00f557b3 -006595b3 -010e5e13 -02c77733 -00b7e5b3 -02de07b3 -0105de93 -006518b3 -01071693 -01d6e6b3 -00f6fa63 -010686b3 -0106e663 -00f6f463 -010686b3 -40f686b3 -02c6d733 -01059793 -0107d793 -02c6f6b3 -02ee0733 -01069593 -00f5e5b3 -00e5fa63 -010585b3 -0105e663 -00e5f463 -010585b3 -40e585b3 -ec9ff06f -006657b3 -011696b3 -00d7eeb3 -0065d833 -010edf93 -006557b3 -03f85e33 -011595b3 -00b7e5b3 -010e9713 -01075713 -03f877b3 -03c702b3 -0105d813 -01161633 -01151533 -01079793 -0107e6b3 -0056fe63 -01d686b3 -fffe0793 -13d6ea63 -1256f863 -ffee0e13 -01d686b3 -405686b3 -03f6d7b3 -01059593 -0105d593 -03f6f6b3 -02f70f33 -01069693 -00b6e733 -01e77e63 -01d70733 -fff78693 -0fd76863 -0fe77663 -ffe78793 -01d70733 -010e1e13 -000102b7 -00fe6e33 -fff28813 -010e76b3 -01065593 -010e5e13 -01067833 -03068fb3 -030e0833 -02b686b3 -010fd793 -02be0e33 -010686b3 -00d787b3 -41e70733 -0107f463 -005e0e33 -000106b7 -fff68693 -0107d593 -00d7f7b3 -01079793 -00dfffb3 -01c58e33 -01f787b3 -03c76863 -03c70463 -40f507b3 -00f535b3 -41c70733 -40b705b3 -00659333 -0117d533 -00a36533 -0115d5b3 -00008067 -fcf57ee3 -40c78633 -00c7b7b3 -01d787b3 -40fe0e33 -00060793 -fc5ff06f -01085693 -01000793 -d3dff06f -0106d313 -01000893 -cc9ff06f -01065693 -01000793 -bfdff06f -00068313 -00000893 -cb1ff06f -00068793 -f1dff06f -00078e13 -ed9ff06f -01070733 -d59ff06f -00a5c7b3 -0037f793 -00c508b3 -06079263 -00300793 -04c7fe63 -00357793 -00050713 -06079863 -ffc8f613 -fe060793 -08f76c63 -02c77c63 -00058693 -00070793 -0006a803 -00478793 -00468693 -ff07ae23 -fec7e8e3 -fff60793 -40e787b3 -ffc7f793 -00478793 -00f70733 -00f585b3 -01176863 -00008067 -00050713 -ff157ce3 -0005c783 -00170713 -00158593 -fef70fa3 -ff1768e3 -00008067 -0005c683 -00170713 -00377793 -fed70fa3 -00158593 -f80780e3 -0005c683 -00170713 -00377793 -fed70fa3 -00158593 -fc079ae3 -f65ff06f -0045a683 -0005a283 -0085af83 -00c5af03 -0105ae83 -0145ae03 -0185a303 -01c5a803 -00d72223 -0205a683 -00572023 -01f72423 -01e72623 -01d72823 -01c72a23 -00672c23 -01072e23 -02470713 -fed72e23 -02458593 -faf768e3 -f19ff06f -00f00313 -00050713 -02c37e63 -00f77793 -0a079063 -08059263 -ff067693 -00f67613 -00e686b3 -00b72023 -00b72223 -00b72423 -00b72623 -01070713 -fed766e3 -00061463 -00008067 -40c306b3 -00269693 -00000297 -005686b3 -00c68067 -00b70723 -00b706a3 -00b70623 -00b705a3 -00b70523 -00b704a3 -00b70423 -00b703a3 -00b70323 -00b702a3 -00b70223 -00b701a3 -00b70123 -00b700a3 -00b70023 -00008067 -0ff5f593 -00859693 -00d5e5b3 -01059693 -00d5e5b3 -f6dff06f -00279693 -00000297 -005686b3 -00008293 -fa0680e7 -00028093 -ff078793 -40f70733 -00f60633 -f6c378e3 -f3dff06f -00b56733 -fff00393 -00377713 -10071063 -7f7f87b7 -f7f78793 -00052603 -0005a683 -00f672b3 -00f66333 -00f282b3 -0062e2b3 -10729263 -08d61663 -00452603 -0045a683 -00f672b3 -00f66333 -00f282b3 -0062e2b3 -0c729e63 -06d61663 -00852603 -0085a683 -00f672b3 -00f66333 -00f282b3 -0062e2b3 -0c729863 -04d61663 -00c52603 -00c5a683 -00f672b3 -00f66333 -00f282b3 -0062e2b3 -0c729263 -02d61663 -01052603 -0105a683 -00f672b3 -00f66333 -00f282b3 -0062e2b3 -0a729c63 -01450513 -01458593 -f4d60ee3 -01061713 -01069793 -00f71e63 -01065713 -0106d793 -40f70533 -0ff57593 -02059063 -00008067 -01075713 -0107d793 -40f70533 -0ff57593 -00059463 -00008067 -0ff77713 -0ff7f793 -40f70533 -00008067 -00054603 -0005c683 -00150513 -00158593 -00d61463 -fe0616e3 -40d60533 -00008067 -00450513 -00458593 -fcd61ce3 -00000513 -00008067 -00850513 -00858593 -fcd612e3 -00000513 -00008067 -00c50513 -00c58593 -fad618e3 -00000513 -00008067 -01050513 -01058593 -f8d61ee3 -00000513 -00008067 -00050613 -00b606b3 -00058513 -00060793 -00059863 -01c0006f -00178793 -00f68863 -0007c703 -fe071ae3 -40c78533 -00008067 -00008067 -f6010113 -08112e23 -08812c23 -08912a23 -0a010413 -09212823 -09312623 -09412423 -09512223 -09612023 -07712e23 -07812c23 -07912a23 -07a12823 -07b12623 -fe1fd0ef -800047b7 -ac878793 -fc010113 -0007a283 -00f10693 -80004737 -fc010113 -0b470713 -0047af03 -0087ae83 -00c7ae03 -0107a303 -0147a883 -0187a803 -01c7d583 -01e7c603 -00f10793 -ff07f793 -00072f83 -00472503 -ff06f693 -0057a823 -00200393 -86d1a423 -00d7a023 -0077a423 -02800393 -0077a623 -01e7aa23 -01d7ac23 -01c7ae23 -86f1a623 -f9f42023 -0267a023 -0317a223 -0307a423 -02b79623 -02c78723 -0007a223 -00872303 -00c72883 -01072803 -01472583 -01872603 -f8a42223 -01e74783 -01c75683 -80004737 -d3070513 -80004737 -65470713 -f8f40f23 -00a00793 -64f72e23 -f8642423 -f9142623 -f9042823 -f8b42a23 -f8c42c23 -f8d41e23 -ce5fe0ef -800045b7 -80004537 -ae858593 -af850513 -cd1fe0ef -8581a783 -78078463 -80004537 -b1450513 -cbdfe0ef -05f5e637 -800045b7 -80004537 -10060613 -b7458593 -b8050513 -ca1fe0ef -800047b7 -d3078513 -c95fe0ef -000027b7 -71078793 -80004a37 -800044b7 -f6f42623 -0d4a0a13 -0f448493 -8401aa23 -f6c42903 -800047b7 -b9478513 -00090593 -c61fe0ef -ebdfd0ef -82a1a223 -82b1a423 -e85fd0ef -00190d93 -00100a93 -00200913 -00100d13 -84a1a623 -84b1a823 -8b8fe0ef -890fe0ef -01ca5703 -01ea4783 -000a2e83 -004a2e03 -008a2303 -00ca2883 -010a2803 -014a2603 -018a2683 -fa040593 -f8040513 -fae41e23 -faf40f23 -f7242a23 -fbd42023 -fbc42223 -fa642423 -fb142623 -fb042823 -fac42a23 -fad42c23 -f7a42e23 -c79fd0ef -00050793 -f7442503 -0017b793 -86f1a023 -02a94863 -00251793 -00a787b3 -ffd78793 -f7840613 -00300593 -f6f42c23 -bb5fd0ef -f7442503 -00150513 -f6a42a23 -fca95ce3 -f7842683 -800047b7 -65478593 -00050613 -87018513 -b9dfd0ef -86c1a503 -e79fd0ef -85c1c703 -04000793 -62e7f063 -04100b13 -00300b93 -000b0513 -04300593 -bd9fd0ef -f7c42783 -001b0713 -54f50c63 -85c1c783 -0ff77b13 -ff67f0e3 -f7442b03 -f7842c03 -001a8a93 -036b8b33 -f7440513 -038b4bb3 -f7742a23 -dd5fd0ef -ef5d92e3 -d49fd0ef -84a1a223 -84b1a423 -d69fd0ef -8241a703 -8281a783 -00058893 -40e50733 -8441a303 -00050813 -84c1a603 -8501ae83 -8481a683 -00e835b3 -40f887b3 -000f4537 -40b787b3 -24050513 -02a78e33 -02a735b3 -40c30633 -00c33333 -02a70533 -41d686b3 -406686b3 -8101ae23 -00be05b3 -84d1a023 -80e1aa23 -80f1ac23 -8311a023 -82c1ae23 -fd9fe0ef -800047b7 -52a7a423 -80b1a823 -d11fd0ef -83c1a783 -8401a703 -800046b7 -52a6a023 -00e7e7b3 -52b6a223 -4e078463 -00100793 -84f1aa23 -80004537 -bf050513 -a55fe0ef -800047b7 -d3078513 -a49fe0ef -8641a583 -80004537 -c2850513 -800044b7 -a35fe0ef -00500593 -c4448513 -a29fe0ef -8601a583 -80004537 -c6050513 -a19fe0ef -00100593 -c4448513 -a0dfe0ef -85d1c583 -80004537 -c7c50513 -9fdfe0ef -80004937 -04100593 -c9890513 -9edfe0ef -85c1c583 -80004537 -cb450513 -9ddfe0ef -04200593 -c9890513 -9d1fe0ef -87018793 -0207a583 -80004537 -cd050513 -9bdfe0ef -00700593 -c4448513 -9b1fe0ef -80004737 -65470713 -65c72583 -80004537 -cec50513 -999fe0ef -80004537 -d0850513 -98dfe0ef -80004537 -d3450513 -981fe0ef -86c1a703 -800047b7 -d4478513 -00072583 -80004db7 -80004d37 -965fe0ef -80004537 -d6050513 -959fe0ef -86c1a703 -d94d8513 -80004cb7 -00472583 -80004ab7 -80004a37 -93dfe0ef -00000593 -c4448513 -931fe0ef -86c1a703 -db0d0513 -418b0b33 -00872583 -91dfe0ef -00200593 -c4448513 -911fe0ef -86c1a703 -dccc8513 -00c72583 -901fe0ef -01100593 -c4448513 -8f5fe0ef -86c1a583 -de8a8513 -01058593 -8e5fe0ef -e04a0513 -8ddfe0ef -80004537 -e3c50513 -8d1fe0ef -8681a703 -800047b7 -d4478513 -00072583 -8bdfe0ef -80004537 -e5050513 -8b1fe0ef -8681a783 -d94d8513 -0047a583 -8a1fe0ef -00000593 -c4448513 -895fe0ef -8681a783 -db0d0513 -0087a583 -885fe0ef -00100593 -c4448513 -879fe0ef -8681a783 -dccc8513 -00c7a583 -869fe0ef -01200593 -c4448513 -85dfe0ef -8681a583 -de8a8513 -01058593 -84dfe0ef -e04a0513 -845fe0ef -f7442583 -80004537 -e9450513 -835fe0ef -00500593 -c4448513 -829fe0ef -003b1793 -41678b33 -80004537 -417b05b3 -eb050513 -811fe0ef -00d00593 -c4448513 -805fe0ef -f7842583 -80004537 -ecc50513 -ff4fe0ef -00700593 -c4448513 -fe8fe0ef -f7c42583 -80004537 -ee850513 -fd8fe0ef -00100593 -c4448513 -fccfe0ef -80004537 -f8040593 -f0450513 -fbcfe0ef -80004537 -f2050513 -fb0fe0ef -80004537 -fa040593 -f5850513 -fa0fe0ef -80004537 -f7450513 -f94fe0ef -800047b7 -d3078513 -f88fe0ef -f6c42483 -83c1aa03 -8401aa83 -00048613 -41f4d693 -000a0513 -000a8593 -cadfe0ef -000f47b7 -24078793 -02f58733 -02f535b3 -02f50533 -05f5e637 -10060613 -00000693 -00b705b3 -c85fe0ef -00050713 -05f5e537 -10050513 -00058793 -02a495b3 -02a48533 -000a0613 -000a8693 -82f1ac23 -82e1aa23 -c59fe0ef -84c1a603 -8501a683 -00050713 -80004537 -fac50513 -82e1a623 -82b1a823 -ef4fe0ef -8441a603 -8481a683 -80004537 -fc050513 -ee0fe0ef -83c1a603 -8401a683 -80004537 -fd450513 -eccfe0ef -8341a603 -8381a683 -80004537 -fe850513 -eb8fe0ef -82c1a603 -8301a683 -80004537 -01c50513 -ea4fe0ef -8241a603 -8281a683 -80004537 -05050513 -e90fe0ef -81c1a603 -8201a683 -80004537 -06450513 -e7cfe0ef -8141a603 -8181a683 -80004537 -07850513 -e68fe0ef -800047b7 -5287a603 -8101a683 -80004537 -08c50513 -e50fe0ef -800047b7 -5207a603 -5247a683 -80004537 -09c50513 -e38fe0ef -f6040113 -09c12083 -09812403 -09412483 -09012903 -08c12983 -08812a03 -08412a83 -08012b03 -07c12b83 -07812c03 -07412c83 -07012d03 -06c12d83 -00000513 -0a010113 -00008067 -f7c40593 -00000513 -ef8fd0ef -0004ae03 -0044a303 -0084a883 -00c4a803 -0104a503 -0144a583 -0184a603 -01c4d683 -01e4c703 -85c1c783 -001b0b13 -0ffb7b13 -fbc42023 -fa642223 -fb142423 -fb042623 -faa42823 -fab42a23 -fac42c23 -fad41e23 -fae40f23 -8751a223 -000a8b93 -a367f6e3 -a4dff06f -80004537 -bb850513 -d78fe0ef -f6c42703 -00271793 -00e787b3 -80004737 -00179793 -d3070513 -f6f42623 -d58fe0ef -8541a783 -8e0780e3 -af1ff06f -00300b93 -a0dff06f -80004537 -b4450513 -d38fe0ef -87dff06f -fff00513 -00008067 -59524844 -4e4f5453 -52502045 -4152474f -53202c4d -20454d4f -49525453 -0000474e -56202c43 -69737265 -32206e6f -0000322e -79726844 -6e6f7473 -65422065 -6d68636e -2c6b7261 -0d732520 -0000000a -676f7250 -206d6172 -706d6f63 -64656c69 -74697720 -72272068 -73696765 -27726574 -74746120 -75626972 -0a0d6574 -00000000 -676f7250 -206d6172 -706d6f63 -64656c69 -74697720 -74756f68 -65722720 -74736967 -20277265 -72747461 -74756269 -000a0d65 -79636472 -28656c63 -00000029 -6e697355 -73252067 -5a48202c -0d64253d -0000000a -69797254 -2520676e -75722064 -7420736e -756f7268 -44206867 -73797268 -656e6f74 -000a0d3a -7361654d -64657275 -6d697420 -6f742065 -6d73206f -206c6c61 -6f206f74 -69617462 -656d206e -6e696e61 -6c756667 -73657220 -73746c75 -00000a0d -616e6946 -6176206c -7365756c -20666f20 -20656874 -69726176 -656c6261 -73752073 -69206465 -6874206e -65622065 -6d68636e -3a6b7261 -00000a0d -5f746e49 -626f6c47 -2020203a -20202020 -20202020 -0d642520 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -0d642520 -0000000a -6c6f6f42 -6f6c475f -20203a62 -20202020 -20202020 -0d642520 -0000000a -315f6843 -6f6c475f -20203a62 -20202020 -20202020 -0d632520 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -0d632520 -0000000a -325f6843 -6f6c475f -20203a62 -20202020 -20202020 -0d632520 -0000000a -5f727241 -6c475f31 -385b626f -20203a5d -20202020 -0d642520 -0000000a -5f727241 -6c475f32 -385b626f -5d375b5d -2020203a -0d642520 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -6d754e20 -5f726562 -525f664f -20736e75 -3031202b -00000a0d -5f727450 -626f6c47 -0a0d3e2d -00000000 -74502020 -6f435f72 -203a706d -20202020 -20202020 -0d642520 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -6d692820 -6d656c70 -61746e65 -6e6f6974 -7065642d -65646e65 -0d29746e -0000000a -69442020 -3a726373 -20202020 -20202020 -20202020 -0d642520 -0000000a -6e452020 -435f6d75 -3a706d6f -20202020 -20202020 -0d642520 -0000000a -6e492020 -6f435f74 -203a706d -20202020 -20202020 -0d642520 -0000000a -74532020 -6f435f72 -203a706d -20202020 -20202020 -0d732520 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -52484420 -4f545359 -5020454e -52474f52 -202c4d41 -454d4f53 -52545320 -0d474e49 -0000000a -7478654e -7274505f -6f6c475f -0d3e2d62 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -6d692820 -6d656c70 -61746e65 -6e6f6974 -7065642d -65646e65 -2c29746e -6d617320 -73612065 -6f626120 -0a0d6576 -00000000 -5f746e49 -6f4c5f31 -20203a63 -20202020 -20202020 -0d642520 -0000000a -5f746e49 -6f4c5f32 -20203a63 -20202020 -20202020 -0d642520 -0000000a -5f746e49 -6f4c5f33 -20203a63 -20202020 -20202020 -0d642520 -0000000a -6d756e45 -636f4c5f -2020203a -20202020 -20202020 -0d642520 -0000000a -5f727453 -6f4c5f31 -20203a63 -20202020 -20202020 -0d732520 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -52484420 -4f545359 -5020454e -52474f52 -202c4d41 -54532731 -52545320 -0d474e49 -0000000a -5f727453 -6f4c5f32 -20203a63 -20202020 -20202020 -0d732520 -0000000a -20202020 -20202020 -756f6873 -6220646c -20203a65 -52484420 -4f545359 -5020454e -52474f52 -202c4d41 -444e2732 -52545320 -0d474e49 -0000000a -69676542 -6974206e -203a656d -646c6c25 -00000a0d -20646e45 -656d6974 -6c25203a -0a0d646c -00000000 -72657355 -6d697420 -25203a65 -0d646c6c -0000000a -7263694d -6365736f -73646e6f -726f6620 -656e6f20 -6e757220 -72687420 -6867756f -72684420 -6f747379 -203a656e -646c6c25 -00000a0d -79726844 -6e6f7473 -70207365 -53207265 -6e6f6365 -20203a64 -20202020 -20202020 -20202020 -20202020 -20202020 -646c6c25 -00000a0d -69676542 -6e69206e -203a7473 -646c6c25 -00000a0d -20646e45 -74736e69 -6c25203a -0a0d646c -00000000 -72657355 -736e6920 -25203a74 -0d646c6c -0000000a -2a435049 -203a4d31 -6c6c250a -000a0d64 -6e617262 -6d206863 -65737369 -0a203a73 -646c6c25 -00000a0d -59524844 -4e4f5453 -52502045 -4152474f -31202c4d -20545327 -49525453 -0000474e -59524844 -4e4f5453 -52502045 -4152474f -32202c4d -20444e27 -49525453 -0000474e -59524844 -4e4f5453 -52502045 -4152474f -33202c4d -20445227 -49525453 -0000474e -6c756e28 -0000296c -8000164c -800015dc -80001658 -800015dc -800015dc -800015dc -800015dc -80001660 -800015dc -800015dc -800015bc -800017f8 -800015dc -800015bc -800015fc -800015fc -800015fc -800015fc -800015fc -800015fc -800015fc -800015fc -800015fc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -80001810 -80001794 -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800015dc -800017e8 -800015dc -800015dc -80001958 -8000167c -800015dc -800015dc -80001838 -800015dc -80001964 -800015dc -800015dc -800017c8 -80001c60 -80001a84 -80001ba8 -80001a84 -80001a84 -80001a84 -80001a84 -80001dd0 -80001a84 -80001a84 -80001c00 -80001e14 -80001a84 -80001c00 -80001c10 -80001c10 -80001c10 -80001c10 -80001c10 -80001c10 -80001c10 -80001c10 -80001c10 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001d38 -80001d60 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001a84 -80001dc0 -80001a84 -80001a84 -80001e7c -80001a9c -80001a84 -80001a84 -80001c6c -80001a84 -80001e84 -80001a84 -80001a84 -80001dec -02020100 -03030303 -04040404 -04040404 -05050505 -05050505 -05050505 -05050505 -06060606 -06060606 -06060606 -06060606 -06060606 -06060606 -06060606 -06060606 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -07070707 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -08080808 -00000010 -00000000 -00527a01 -01017c01 -00020d1b -00000010 -00000018 -ffffdbac -000004a0 -00000000 -00000010 -0000002c -ffffe038 -000004a0 -00000000 -00000010 -00000040 -ffffe4c4 -00000460 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 -00000000 \ No newline at end of file diff --git a/examples/zedboard/dhrystone.riscv.sim_init b/examples/zedboard/dhrystone.riscv.sim_init deleted file mode 100644 index e3bcd47..0000000 --- a/examples/zedboard/dhrystone.riscv.sim_init +++ /dev/null @@ -1,32768 +0,0 @@ -00000093 <_start> li ra,0 -- -00000113 <_start+0x4> li sp,0 -- -00000193 <_start+0x8> li gp,0 -- -00000213 <_start+0xc> li tp,0 -- -00000293 <_start+0x10> li t0,0 -- -00000313 <_start+0x14> li t1,0 -- -00000393 <_start+0x18> li t2,0 -- -00000413 <_start+0x1c> li s0,0 -- -00000493 <_start+0x20> li s1,0 -- -00000513 <_start+0x24> li a0,0 -- -00000593 <_start+0x28> li a1,0 -- -00000613 <_start+0x2c> li a2,0 -- -00000693 <_start+0x30> li a3,0 -- -00000713 <_start+0x34> li a4,0 -- -00000793 <_start+0x38> li a5,0 -- -00000813 <_start+0x3c> li a6,0 -- -00000893 <_start+0x40> li a7,0 -- -00000913 <_start+0x44> li s2,0 -- -00000993 <_start+0x48> li s3,0 -- -00000a13 <_start+0x4c> li s4,0 -- -00000a93 <_start+0x50> li s5,0 -- -00000b13 <_start+0x54> li s6,0 -- -00000b93 <_start+0x58> li s7,0 -- -00000c13 <_start+0x5c> li s8,0 -- -00000c93 <_start+0x60> li s9,0 -- -00000d13 <_start+0x64> li s10,0 -- -00000d93 <_start+0x68> li s11,0 -- -00000e13 <_start+0x6c> li t3,0 -- -00000e93 <_start+0x70> li t4,0 -- -00000f13 <_start+0x74> li t5,0 -- -00000f93 <_start+0x78> li t6,0 -- -0001e2b7 <_start+0x7c> lui t0,0x1e -- -3002a073 <_start+0x80> csrs mstatus,t0 -- -00100293 <_start+0x84> li t0,1 -- -01f29293 <_start+0x88> slli t0,t0,0x1f -- -0002c663 <_start+0x8c> bltz t0,80000098 <_start+0x98> -- -00100513 <_start+0x90> li a0,1 -- -ffdff06f <_start+0x94> j 80000090 <_start+0x90> -- -00000297 <_start+0x98> auipc t0,0x0 -- -04428293 <_start+0x9c> addi t0,t0,68 # 800000dc -- -30529073 <_start+0xa0> csrw mtvec,t0 -- -00005197 <_start+0xa4> auipc gp,0x5 -- -c7818193 <_start+0xa8> addi gp,gp,-904 # 80004d1c <__global_pointer$> -- -00007217 <_start+0xac> auipc tp,0x7 -- -cf720213 <_start+0xb0> addi tp,tp,-777 # 80006da3 <_end+0x3f> -- -fc027213 <_start+0xb4> andi tp,tp,-64 -- -f1402573 <_start+0xb8> csrr a0,mhartid -- -00100593 <_start+0xbc> li a1,1 -- -00b57063 <_start+0xc0> bgeu a0,a1,800000c0 <_start+0xc0> -- -00b51613 <_start+0xc4> slli a2,a0,0xb -- -00c20233 <_start+0xc8> add tp,tp,a2 -- -00150113 <_start+0xcc> addi sp,a0,1 -- -00b11113 <_start+0xd0> slli sp,sp,0xb -- -00410133 <_start+0xd4> add sp,sp,tp -- -6a10106f <_start+0xd8> j 80001f78 <_init> -- -ef010113 addi sp,sp,-272 -- -00112223 sw ra,4(sp) -- -00212423 sw sp,8(sp) -- -00312623 sw gp,12(sp) -- -00412823 sw tp,16(sp) -- -00512a23 sw t0,20(sp) -- -00612c23 sw t1,24(sp) -- -00712e23 sw t2,28(sp) -- -02812023 sw s0,32(sp) -- -02912223 sw s1,36(sp) -- -02a12423 sw a0,40(sp) -- -02b12623 sw a1,44(sp) -- -02c12823 sw a2,48(sp) -- -02d12a23 sw a3,52(sp) -- -02e12c23 sw a4,56(sp) -- -02f12e23 sw a5,60(sp) -- -05012023 sw a6,64(sp) -- -05112223 sw a7,68(sp) -- -05212423 sw s2,72(sp) -- -05312623 sw s3,76(sp) -- -05412823 sw s4,80(sp) -- -05512a23 sw s5,84(sp) -- -05612c23 sw s6,88(sp) -- -05712e23 sw s7,92(sp) -- -07812023 sw s8,96(sp) -- -07912223 sw s9,100(sp) -- -07a12423 sw s10,104(sp) -- -07b12623 sw s11,108(sp) -- -07c12823 sw t3,112(sp) -- -07d12a23 sw t4,116(sp) -- -07e12c23 sw t5,120(sp) -- -07f12e23 sw t6,124(sp) -- -34202573 csrr a0,mcause -- -341025f3 csrr a1,mepc -- -00010613 mv a2,sp -- -5ed010ef jal ra,80001f54 -- -34151073 csrw mepc,a0 -- -000022b7 lui t0,0x2 -- -80028293 addi t0,t0,-2048 # 00001800 <_tbss_end+0x1800> -- -3002a073 csrs mstatus,t0 -- -00412083 lw ra,4(sp) -- -00812103 lw sp,8(sp) -- -00c12183 lw gp,12(sp) -- -01012203 lw tp,16(sp) -- -01412283 lw t0,20(sp) -- -01812303 lw t1,24(sp) -- -01c12383 lw t2,28(sp) -- -02012403 lw s0,32(sp) -- -02412483 lw s1,36(sp) -- -02812503 lw a0,40(sp) -- -02c12583 lw a1,44(sp) -- -03012603 lw a2,48(sp) -- -03412683 lw a3,52(sp) -- -03812703 lw a4,56(sp) -- -03c12783 lw a5,60(sp) -- -04012803 lw a6,64(sp) -- -04412883 lw a7,68(sp) -- -04812903 lw s2,72(sp) -- -04c12983 lw s3,76(sp) -- -05012a03 lw s4,80(sp) -- -05412a83 lw s5,84(sp) -- -05812b03 lw s6,88(sp) -- -05c12b83 lw s7,92(sp) -- -06012c03 lw s8,96(sp) -- -06412c83 lw s9,100(sp) -- -06812d03 lw s10,104(sp) -- -06c12d83 lw s11,108(sp) -- -07012e03 lw t3,112(sp) -- -07412e83 lw t4,116(sp) -- -07812f03 lw t5,120(sp) -- -07c12f83 lw t6,124(sp) -- -11010113 addi sp,sp,272 -- -30200073 mret -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00250513 addi a0,a0,2 -- -00b505b3 add a1,a0,a1 -- -00b62023 sw a1,0(a2) -- -00008067 ret -- -00560713 addi a4,a2,5 -- -0c800813 li a6,200 -- -03070833 mul a6,a4,a6 -- -00261613 slli a2,a2,0x2 -- -00271893 slli a7,a4,0x2 -- -00c807b3 add a5,a6,a2 -- -01150533 add a0,a0,a7 -- -00f587b3 add a5,a1,a5 -- -00d52023 sw a3,0(a0) -- -06e52c23 sw a4,120(a0) -- -00d52223 sw a3,4(a0) -- -0107a683 lw a3,16(a5) -- -00e7aa23 sw a4,20(a5) -- -00e7ac23 sw a4,24(a5) -- -00168713 addi a4,a3,1 -- -00e7a823 sw a4,16(a5) -- -010585b3 add a1,a1,a6 -- -00052703 lw a4,0(a0) -- -00c585b3 add a1,a1,a2 -- -000017b7 lui a5,0x1 -- -00b785b3 add a1,a5,a1 -- -fae5aa23 sw a4,-76(a1) -- -00500713 li a4,5 -- -86e1a223 sw a4,-1948(gp) # 80004580 -- -00008067 ret -- -0ff57793 andi a5,a0,255 -- -0ff5f593 andi a1,a1,255 -- -00b78663 beq a5,a1,80001088 -- -00000513 li a0,0 -- -00008067 ret -- -00100513 li a0,1 -- -84f18ea3 sb a5,-1955(gp) # 80004579 -- -00008067 ret -- -ff010113 addi sp,sp,-16 -- -00812423 sw s0,8(sp) -- -00912223 sw s1,4(sp) -- -00050413 mv s0,a0 -- -00058493 mv s1,a1 -- -00112623 sw ra,12(sp) -- -0034c583 lbu a1,3(s1) -- -00244503 lbu a0,2(s0) -- -fc1ff0ef jal ra,80001074 -- -fe051ae3 bnez a0,800010ac -- -00048593 mv a1,s1 -- -00040513 mv a0,s0 -- -769010ef jal ra,8000302c -- -00000793 li a5,0 -- -00a05863 blez a0,800010dc -- -00a00693 li a3,10 -- -00100793 li a5,1 -- -86d1a223 sw a3,-1948(gp) # 80004580 -- -00c12083 lw ra,12(sp) -- -00812403 lw s0,8(sp) -- -00412483 lw s1,4(sp) -- -00078513 mv a0,a5 -- -01010113 addi sp,sp,16 -- -00008067 ret -- -ffe50513 addi a0,a0,-2 -- -00153513 seqz a0,a0 -- -00008067 ret -- -ff010113 addi sp,sp,-16 -- -00812423 sw s0,8(sp) -- -00912223 sw s1,4(sp) -- -00112623 sw ra,12(sp) -- -00050413 mv s0,a0 -- -00058493 mv s1,a1 -- -fddff0ef jal ra,800010f4 -- -04050e63 beqz a0,80001178 -- -00200793 li a5,2 -- -0084a023 sw s0,0(s1) -- -06f40063 beq s0,a5,80001188 -- -0287e663 bltu a5,s0,80001158 -- -00040863 beqz s0,80001140 -- -8641a703 lw a4,-1948(gp) # 80004580 -- -06400793 li a5,100 -- -06e7d463 bge a5,a4,800011a4 -- -0004a023 sw zero,0(s1) -- -00c12083 lw ra,12(sp) -- -00812403 lw s0,8(sp) -- -00412483 lw s1,4(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -00400713 li a4,4 -- -fee414e3 bne s0,a4,80001144 -- -00c12083 lw ra,12(sp) -- -00812403 lw s0,8(sp) -- -00f4a023 sw a5,0(s1) -- -00412483 lw s1,4(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -00300793 li a5,3 -- -00f4a023 sw a5,0(s1) -- -00200793 li a5,2 -- -faf414e3 bne s0,a5,8000112c -- -00c12083 lw ra,12(sp) -- -00812403 lw s0,8(sp) -- -00100793 li a5,1 -- -00f4a023 sw a5,0(s1) -- -00412483 lw s1,4(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -00c12083 lw ra,12(sp) -- -00812403 lw s0,8(sp) -- -00300793 li a5,3 -- -00f4a023 sw a5,0(s1) -- -00412483 lw s1,4(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -fe010113 addi sp,sp,-32 -- -00b12223 sw a1,4(sp) -- -00c12423 sw a2,8(sp) -- -00d12623 sw a3,12(sp) -- -00e12823 sw a4,16(sp) -- -00f12a23 sw a5,20(sp) -- -01012c23 sw a6,24(sp) -- -01112e23 sw a7,28(sp) -- -02010113 addi sp,sp,32 -- -00008067 ret -- -600017b7 lui a5,0x60001 -- -00300713 li a4,3 -- -00e7a623 sw a4,12(a5) # 6000100c <_tbss_end+0x6000100c> -- -00008067 ret -- -0001c637 lui a2,0x1c -- -05f5e5b7 lui a1,0x5f5e -- -ff010113 addi sp,sp,-16 -- -20060613 addi a2,a2,512 # 0001c200 <_tbss_end+0x1c200> -- -10058593 addi a1,a1,256 # 05f5e100 <_tbss_end+0x5f5e100> -- -60000537 lui a0,0x60000 -- -00112623 sw ra,12(sp) -- -4e9000ef jal ra,80001efc -- -00c12083 lw ra,12(sp) -- -01010113 addi sp,sp,16 -- -fc9ff06f j 800011e8 -- -ff010113 addi sp,sp,-16 -- -c80027f3 rdcycleh a5 -- -c0002773 rdcycle a4 -- -c80026f3 rdcycleh a3 -- -fed79ae3 bne a5,a3,80001228 -- -00e12423 sw a4,8(sp) -- -00f12623 sw a5,12(sp) -- -00812503 lw a0,8(sp) -- -00c12583 lw a1,12(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -ff010113 addi sp,sp,-16 -- -c82027f3 rdinstreth a5 -- -c0202773 rdinstret a4 -- -c82026f3 rdinstreth a3 -- -fed79ae3 bne a5,a3,80001254 -- -00e12423 sw a4,8(sp) -- -00f12623 sw a5,12(sp) -- -00812503 lw a0,8(sp) -- -00c12583 lw a1,12(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -ff010113 addi sp,sp,-16 -- -b80027f3 csrr a5,mcycleh -- -b0002773 csrr a4,mcycle -- -b80026f3 csrr a3,mcycleh -- -fed79ae3 bne a5,a3,80001280 -- -00e12423 sw a4,8(sp) -- -00f12623 sw a5,12(sp) -- -00812503 lw a0,8(sp) -- -00c12583 lw a1,12(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -85d1c703 lbu a4,-1955(gp) # 80004579 -- -04100793 li a5,65 -- -00f70463 beq a4,a5,800012b8 -- -00008067 ret -- -00052783 lw a5,0(a0) # 60000000 <_tbss_end+0x60000000> -- -8641a703 lw a4,-1948(gp) # 80004580 -- -00978793 addi a5,a5,9 -- -40e787b3 sub a5,a5,a4 -- -00f52023 sw a5,0(a0) -- -00008067 ret -- -86c1a603 lw a2,-1940(gp) # 80004588 -- -00060863 beqz a2,800012e4 -- -00062703 lw a4,0(a2) -- -00e52023 sw a4,0(a0) -- -86c1a603 lw a2,-1940(gp) # 80004588 -- -8641a583 lw a1,-1948(gp) # 80004580 -- -00c60613 addi a2,a2,12 -- -00a00513 li a0,10 -- -d11ff06f j 80001000 -- -ff010113 addi sp,sp,-16 -- -01212023 sw s2,0(sp) -- -86c1a783 lw a5,-1940(gp) # 80004588 -- -00812423 sw s0,8(sp) -- -00052403 lw s0,0(a0) -- -0007a703 lw a4,0(a5) -- -0047af03 lw t5,4(a5) -- -0087ae83 lw t4,8(a5) -- -0107ae03 lw t3,16(a5) -- -0147a303 lw t1,20(a5) -- -0187a883 lw a7,24(a5) -- -01c7a803 lw a6,28(a5) -- -0247a583 lw a1,36(a5) -- -0287a603 lw a2,40(a5) -- -02c7a683 lw a3,44(a5) -- -00912223 sw s1,4(sp) -- -00050493 mv s1,a0 -- -0207a503 lw a0,32(a5) -- -00112623 sw ra,12(sp) -- -00e42023 sw a4,0(s0) -- -0004a703 lw a4,0(s1) -- -00500793 li a5,5 -- -02a42023 sw a0,32(s0) -- -01e42223 sw t5,4(s0) -- -01d42423 sw t4,8(s0) -- -01c42823 sw t3,16(s0) -- -00642a23 sw t1,20(s0) -- -01142c23 sw a7,24(s0) -- -01042e23 sw a6,28(s0) -- -02b42223 sw a1,36(s0) -- -02c42423 sw a2,40(s0) -- -02d42623 sw a3,44(s0) -- -00f4a623 sw a5,12(s1) -- -00040513 mv a0,s0 -- -00f42623 sw a5,12(s0) -- -00e42023 sw a4,0(s0) -- -f4dff0ef jal ra,800012d0 -- -00442783 lw a5,4(s0) -- -08078063 beqz a5,8000140c -- -0004a783 lw a5,0(s1) -- -00c12083 lw ra,12(sp) -- -00812403 lw s0,8(sp) -- -0007af83 lw t6,0(a5) -- -0047af03 lw t5,4(a5) -- -0087ae83 lw t4,8(a5) -- -00c7ae03 lw t3,12(a5) -- -0107a303 lw t1,16(a5) -- -0147a883 lw a7,20(a5) -- -0187a803 lw a6,24(a5) -- -01c7a583 lw a1,28(a5) -- -0207a603 lw a2,32(a5) -- -0247a683 lw a3,36(a5) -- -0287a703 lw a4,40(a5) -- -02c7a783 lw a5,44(a5) -- -01f4a023 sw t6,0(s1) -- -01e4a223 sw t5,4(s1) -- -01d4a423 sw t4,8(s1) -- -01c4a623 sw t3,12(s1) -- -0064a823 sw t1,16(s1) -- -0114aa23 sw a7,20(s1) -- -0104ac23 sw a6,24(s1) -- -00b4ae23 sw a1,28(s1) -- -02c4a023 sw a2,32(s1) -- -02d4a223 sw a3,36(s1) -- -02e4a423 sw a4,40(s1) -- -02f4a623 sw a5,44(s1) -- -00012903 lw s2,0(sp) -- -00412483 lw s1,4(sp) -- -01010113 addi sp,sp,16 -- -00008067 ret -- -0084a503 lw a0,8(s1) -- -00840593 addi a1,s0,8 -- -00600793 li a5,6 -- -00f42623 sw a5,12(s0) -- -ce5ff0ef jal ra,80001100 -- -86c1a783 lw a5,-1940(gp) # 80004588 -- -00c42503 lw a0,12(s0) -- -00c40613 addi a2,s0,12 -- -0007a783 lw a5,0(a5) -- -00c12083 lw ra,12(sp) -- -00412483 lw s1,4(sp) -- -00f42023 sw a5,0(s0) -- -00812403 lw s0,8(sp) -- -00012903 lw s2,0(sp) -- -00a00593 li a1,10 -- -01010113 addi sp,sp,16 -- -bb5ff06f j 80001000 -- -85d1c783 lbu a5,-1955(gp) # 80004579 -- -8601a683 lw a3,-1952(gp) # 8000457c -- -fbf78793 addi a5,a5,-65 -- -0017b793 seqz a5,a5 -- -00d7e7b3 or a5,a5,a3 -- -86f1a023 sw a5,-1952(gp) # 8000457c -- -04200713 li a4,66 -- -84e18e23 sb a4,-1956(gp) # 80004578 -- -00008067 ret -- -04100713 li a4,65 -- -84e18ea3 sb a4,-1955(gp) # 80004579 -- -8601a023 sw zero,-1952(gp) # 8000457c -- -00008067 ret -- -60001737 lui a4,0x60001 -- -01472783 lw a5,20(a4) # 60001014 <_tbss_end+0x60001014> -- -0207f793 andi a5,a5,32 -- -fe078ce3 beqz a5,80001488 -- -0ff57513 andi a0,a0,255 -- -00a72023 sw a0,0(a4) -- -00000513 li a0,0 -- -00008067 ret -- -0005a783 lw a5,0(a1) -- -00a78023 sb a0,0(a5) -- -0005a783 lw a5,0(a1) -- -00178793 addi a5,a5,1 -- -00f5a023 sw a5,0(a1) -- -00008067 ret -- -eb010113 addi sp,sp,-336 -- -13612823 sw s6,304(sp) -- -80004b37 lui s6,0x80004 -- -11cb0793 addi a5,s6,284 # 8000411c <_end+0xffffd3b8> -- -14912223 sw s1,324(sp) -- -13912223 sw s9,292(sp) -- -13a12023 sw s10,288(sp) -- -11b12e23 sw s11,284(sp) -- -00050c93 mv s9,a0 -- -00058d13 mv s10,a1 -- -02500d93 li s11,37 -- -00900493 li s1,9 -- -14112623 sw ra,332(sp) -- -14812423 sw s0,328(sp) -- -15212023 sw s2,320(sp) -- -13312e23 sw s3,316(sp) -- -13412c23 sw s4,312(sp) -- -13512a23 sw s5,308(sp) -- -13712623 sw s7,300(sp) -- -13812423 sw s8,296(sp) -- -00c12423 sw a2,8(sp) -- -00f12623 sw a5,12(sp) -- -0200006f j 80001534 -- -06078463 beqz a5,80001580 -- -000ca703 lw a4,0(s9) -- -001d0d13 addi s10,s10,1 -- -00f70023 sb a5,0(a4) -- -000ca783 lw a5,0(s9) -- -00178793 addi a5,a5,1 -- -00fca023 sw a5,0(s9) -- -000d4783 lbu a5,0(s10) -- -ffb790e3 bne a5,s11,80001518 -- -001d4683 lbu a3,1(s10) -- -001d0593 addi a1,s10,1 -- -00058713 mv a4,a1 -- -02000a93 li s5,32 -- -fff00413 li s0,-1 -- -fff00a13 li s4,-1 -- -00000513 li a0,0 -- -fdd68793 addi a5,a3,-35 -- -0ff7f793 andi a5,a5,255 -- -05500613 li a2,85 -- -00170d13 addi s10,a4,1 -- -06f66a63 bltu a2,a5,800015dc -- -00c12603 lw a2,12(sp) -- -00279793 slli a5,a5,0x2 -- -00c787b3 add a5,a5,a2 -- -0007a783 lw a5,0(a5) -- -00078067 jr a5 -- -14c12083 lw ra,332(sp) -- -14812403 lw s0,328(sp) -- -14412483 lw s1,324(sp) -- -14012903 lw s2,320(sp) -- -13c12983 lw s3,316(sp) -- -13812a03 lw s4,312(sp) -- -13412a83 lw s5,308(sp) -- -13012b03 lw s6,304(sp) -- -12c12b83 lw s7,300(sp) -- -12812c03 lw s8,296(sp) -- -12412c83 lw s9,292(sp) -- -12012d03 lw s10,288(sp) -- -11c12d83 lw s11,284(sp) -- -15010113 addi sp,sp,336 -- -00008067 ret -- -00068a93 mv s5,a3 -- -00174683 lbu a3,1(a4) -- -05500613 li a2,85 -- -000d0713 mv a4,s10 -- -fdd68793 addi a5,a3,-35 -- -0ff7f793 andi a5,a5,255 -- -00170d13 addi s10,a4,1 -- -f8f67ae3 bgeu a2,a5,8000156c -- -000ca783 lw a5,0(s9) -- -00058d13 mv s10,a1 -- -02500713 li a4,37 -- -00e78023 sb a4,0(a5) -- -000ca783 lw a5,0(s9) -- -00178793 addi a5,a5,1 -- -00fca023 sw a5,0(s9) -- -f3dff06f j 80001534 -- -00174603 lbu a2,1(a4) -- -fd068413 addi s0,a3,-48 -- -000d0713 mv a4,s10 -- -fd060793 addi a5,a2,-48 -- -00060693 mv a3,a2 -- -02f4e663 bltu s1,a5,8000163c -- -00241793 slli a5,s0,0x2 -- -00878433 add s0,a5,s0 -- -00170713 addi a4,a4,1 -- -00141413 slli s0,s0,0x1 -- -00c40433 add s0,s0,a2 -- -00074603 lbu a2,0(a4) -- -fd040413 addi s0,s0,-48 -- -fd060793 addi a5,a2,-48 -- -00060693 mv a3,a2 -- -fcf4fee3 bgeu s1,a5,80001614 -- -f00a5ee3 bgez s4,80001558 -- -00040a13 mv s4,s0 -- -fff00413 li s0,-1 -- -f11ff06f j 80001558 -- -00174683 lbu a3,1(a4) -- -000d0713 mv a4,s10 -- -f05ff06f j 80001558 -- -000ca783 lw a5,0(s9) -- -f89ff06f j 800015e4 -- -00812783 lw a5,8(sp) -- -00174683 lbu a3,1(a4) -- -000d0713 mv a4,s10 -- -0007a403 lw s0,0(a5) -- -00478793 addi a5,a5,4 -- -00f12423 sw a5,8(sp) -- -fc5ff06f j 8000163c -- -000ca703 lw a4,0(s9) -- -03000693 li a3,48 -- -00812783 lw a5,8(sp) -- -00d70023 sb a3,0(a4) -- -000ca703 lw a4,0(s9) -- -00478793 addi a5,a5,4 -- -01000b93 li s7,16 -- -00170693 addi a3,a4,1 -- -00dca023 sw a3,0(s9) -- -07800693 li a3,120 -- -00d700a3 sb a3,1(a4) -- -000ca403 lw s0,0(s9) -- -00012223 sw zero,4(sp) -- -00140413 addi s0,s0,1 -- -008ca023 sw s0,0(s9) -- -00812703 lw a4,8(sp) -- -00000913 li s2,0 -- -00072c03 lw s8,0(a4) -- -00f12423 sw a5,8(sp) -- -000b8613 mv a2,s7 -- -00000693 li a3,0 -- -000c0513 mv a0,s8 -- -00090593 mv a1,s2 -- -2fc010ef jal ra,800029d4 <__umoddi3> -- -00000793 li a5,0 -- -00a12823 sw a0,16(sp) -- -25278063 beq a5,s2,80001924 -- -01410b13 addi s6,sp,20 -- -00100993 li s3,1 -- -000b8613 mv a2,s7 -- -00000693 li a3,0 -- -000c0513 mv a0,s8 -- -00090593 mv a1,s2 -- -635000ef jal ra,80002534 <__udivdi3> -- -000b8613 mv a2,s7 -- -00000693 li a3,0 -- -00050c13 mv s8,a0 -- -00058913 mv s2,a1 -- -2c0010ef jal ra,800029d4 <__umoddi3> -- -00412703 lw a4,4(sp) -- -00ab2023 sw a0,0(s6) -- -00098793 mv a5,s3 -- -004b0b13 addi s6,s6,4 -- -00198993 addi s3,s3,1 -- -fd2712e3 bne a4,s2,800016f0 -- -fd7c70e3 bgeu s8,s7,800016f0 -- -0149de63 bge s3,s4,80001750 -- -01540023 sb s5,0(s0) -- -000ca403 lw s0,0(s9) -- -fffa0a13 addi s4,s4,-1 -- -00140413 addi s0,s0,1 -- -008ca023 sw s0,0(s9) -- -ff49c6e3 blt s3,s4,80001738 -- -00279793 slli a5,a5,0x2 -- -01010713 addi a4,sp,16 -- -00f707b3 add a5,a4,a5 -- -0280006f j 80001784 -- -03070713 addi a4,a4,48 -- -00e40023 sb a4,0(s0) -- -000ca403 lw s0,0(s9) -- -01010693 addi a3,sp,16 -- -ffc78713 addi a4,a5,-4 -- -00140413 addi s0,s0,1 -- -008ca023 sw s0,0(s9) -- -daf68ce3 beq a3,a5,80001534 -- -00070793 mv a5,a4 -- -0007a703 lw a4,0(a5) -- -fce4fce3 bgeu s1,a4,80001760 -- -05770713 addi a4,a4,87 -- -fd5ff06f j 80001764 -- -00100793 li a5,1 -- -1aa7c063 blt a5,a0,80001938 -- -00812703 lw a4,8(sp) -- -00072503 lw a0,0(a4) -- -00470793 addi a5,a4,4 -- -00f12423 sw a5,8(sp) -- -41f55913 srai s2,a0,0x1f -- -000ca403 lw s0,0(s9) -- -1a094e63 bltz s2,80001970 -- -00050c13 mv s8,a0 -- -00a00b93 li s7,10 -- -00012223 sw zero,4(sp) -- -f05ff06f j 800016c8 -- -01000b93 li s7,16 -- -00012223 sw zero,4(sp) -- -00100793 li a5,1 -- -000ca403 lw s0,0(s9) -- -12a7c663 blt a5,a0,80001904 -- -00812783 lw a5,8(sp) -- -00478793 addi a5,a5,4 -- -ed5ff06f j 800016b8 -- -00174683 lbu a3,1(a4) -- -00150513 addi a0,a0,1 -- -000d0713 mv a4,s10 -- -d65ff06f j 80001558 -- -fffa4793 not a5,s4 -- -41f7d793 srai a5,a5,0x1f -- -00174683 lbu a3,1(a4) -- -00fa7a33 and s4,s4,a5 -- -000d0713 mv a4,s10 -- -d4dff06f j 80001558 -- -00812683 lw a3,8(sp) -- -000ca783 lw a5,0(s9) -- -0006a703 lw a4,0(a3) -- -00468693 addi a3,a3,4 -- -00d12423 sw a3,8(sp) -- -00e78023 sb a4,0(a5) -- -000ca783 lw a5,0(s9) -- -00178793 addi a5,a5,1 -- -00fca023 sw a5,0(s9) -- -d01ff06f j 80001534 -- -00812783 lw a5,8(sp) -- -0007a903 lw s2,0(a5) -- -00478993 addi s3,a5,4 -- -14090e63 beqz s2,800019a0 -- -0b405663 blez s4,800018f4 -- -02d00793 li a5,45 -- -06fa9a63 bne s5,a5,800018c4 -- -00094783 lbu a5,0(s2) -- -02078e63 beqz a5,80001894 -- -00044863 bltz s0,8000186c -- -fff40413 addi s0,s0,-1 -- -fff00713 li a4,-1 -- -02e40463 beq s0,a4,80001890 -- -000ca703 lw a4,0(s9) -- -00190913 addi s2,s2,1 -- -fffa0a13 addi s4,s4,-1 -- -00f70023 sb a5,0(a4) -- -000ca783 lw a5,0(s9) -- -00178793 addi a5,a5,1 -- -00fca023 sw a5,0(s9) -- -00094783 lbu a5,0(s2) -- -fc0798e3 bnez a5,8000185c -- -03405263 blez s4,800018b4 -- -000ca783 lw a5,0(s9) -- -02000713 li a4,32 -- -00e78023 sb a4,0(a5) -- -000ca783 lw a5,0(s9) -- -fffa0a13 addi s4,s4,-1 -- -00178793 addi a5,a5,1 -- -00fca023 sw a5,0(s9) -- -fe0a16e3 bnez s4,8000189c -- -01312423 sw s3,8(sp) -- -c7dff06f j 80001534 -- -800047b7 lui a5,0x80004 -- -11478913 addi s2,a5,276 # 80004114 <_end+0xffffd3b0> -- -00040593 mv a1,s0 -- -00090513 mv a0,s2 -- -0dd010ef jal ra,800031a8 -- -40aa0a33 sub s4,s4,a0 -- -03405063 blez s4,800018f4 -- -000ca783 lw a5,0(s9) -- -01578023 sb s5,0(a5) -- -000ca783 lw a5,0(s9) -- -fffa0a13 addi s4,s4,-1 -- -00178793 addi a5,a5,1 -- -00fca023 sw a5,0(s9) -- -fe0a16e3 bnez s4,800018dc -- -00094783 lbu a5,0(s2) -- -f60792e3 bnez a5,8000185c -- -01312423 sw s3,8(sp) -- -c35ff06f j 80001534 -- -00812783 lw a5,8(sp) -- -00778993 addi s3,a5,7 -- -ff89f993 andi s3,s3,-8 -- -00898793 addi a5,s3,8 -- -0009ac03 lw s8,0(s3) -- -0049a903 lw s2,4(s3) -- -00f12423 sw a5,8(sp) -- -da9ff06f j 800016c8 -- -dd7c72e3 bgeu s8,s7,800016e8 -- -00100713 li a4,1 -- -00100993 li s3,1 -- -e14744e3 blt a4,s4,80001738 -- -e1dff06f j 80001750 -- -00812783 lw a5,8(sp) -- -00778993 addi s3,a5,7 -- -ff89f993 andi s3,s3,-8 -- -00898793 addi a5,s3,8 -- -0009a503 lw a0,0(s3) -- -0049a903 lw s2,4(s3) -- -00f12423 sw a5,8(sp) -- -e5dff06f j 800017b0 -- -00800b93 li s7,8 -- -00012223 sw zero,4(sp) -- -e71ff06f j 800017d0 -- -00a00b93 li s7,10 -- -00012223 sw zero,4(sp) -- -e65ff06f j 800017d0 -- -02d00793 li a5,45 -- -00f40023 sb a5,0(s0) -- -000ca403 lw s0,0(s9) -- -00a037b3 snez a5,a0 -- -41200933 neg s2,s2 -- -00140413 addi s0,s0,1 -- -40a00c33 neg s8,a0 -- -40f90933 sub s2,s2,a5 -- -00a00b93 li s7,10 -- -00012223 sw zero,4(sp) -- -008ca023 sw s0,0(s9) -- -d2dff06f j 800016c8 -- -01405663 blez s4,800019ac -- -02d00793 li a5,45 -- -f0fa9ae3 bne s5,a5,800018bc -- -800047b7 lui a5,0x80004 -- -11478913 addi s2,a5,276 # 80004114 <_end+0xffffd3b0> -- -02800793 li a5,40 -- -ea5ff06f j 8000185c -- -eb010113 addi sp,sp,-336 -- -13612823 sw s6,304(sp) -- -80004b37 lui s6,0x80004 -- -274b0793 addi a5,s6,628 # 80004274 <_end+0xffffd510> -- -15212023 sw s2,320(sp) -- -13312e23 sw s3,316(sp) -- -13912223 sw s9,292(sp) -- -13a12023 sw s10,288(sp) -- -11b12e23 sw s11,284(sp) -- -00050c93 mv s9,a0 -- -02500d93 li s11,37 -- -60001d37 lui s10,0x60001 -- -00900913 li s2,9 -- -00000993 li s3,0 -- -14112623 sw ra,332(sp) -- -14812423 sw s0,328(sp) -- -14912223 sw s1,324(sp) -- -13412c23 sw s4,312(sp) -- -13512a23 sw s5,308(sp) -- -13712623 sw s7,300(sp) -- -13812423 sw s8,296(sp) -- -00b12223 sw a1,4(sp) -- -00f12423 sw a5,8(sp) -- -000cc683 lbu a3,0(s9) -- -03b68263 beq a3,s11,80001a40 -- -1a068263 beqz a3,80001bc4 -- -001c8c93 addi s9,s9,1 -- -014d2703 lw a4,20(s10) # 60001014 <_tbss_end+0x60001014> -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001a28 -- -00dd2023 sw a3,0(s10) -- -000cc683 lbu a3,0(s9) -- -ffb692e3 bne a3,s11,80001a20 -- -001cc303 lbu t1,1(s9) -- -001c8613 addi a2,s9,1 -- -00060693 mv a3,a2 -- -02000a13 li s4,32 -- -fff00593 li a1,-1 -- -fff00413 li s0,-1 -- -00000513 li a0,0 -- -fdd30713 addi a4,t1,-35 -- -0ff77713 andi a4,a4,255 -- -05500793 li a5,85 -- -00168c93 addi s9,a3,1 -- -00e7ec63 bltu a5,a4,80001a84 -- -00812783 lw a5,8(sp) -- -00271713 slli a4,a4,0x2 -- -00f70733 add a4,a4,a5 -- -00072703 lw a4,0(a4) -- -00070067 jr a4 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001a84 -- -00060c93 mv s9,a2 -- -01bd2023 sw s11,0(s10) -- -f81ff06f j 80001a18 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001a9c -- -03000793 li a5,48 -- -00fd2023 sw a5,0(s10) -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001ab0 -- -00412783 lw a5,4(sp) -- -01000a93 li s5,16 -- -00478693 addi a3,a5,4 -- -07800793 li a5,120 -- -00fd2023 sw a5,0(s10) -- -00412783 lw a5,4(sp) -- -00000493 li s1,0 -- -0007ab83 lw s7,0(a5) -- -00d12223 sw a3,4(sp) -- -000a8613 mv a2,s5 -- -00000693 li a3,0 -- -000b8513 mv a0,s7 -- -00048593 mv a1,s1 -- -6e5000ef jal ra,800029d4 <__umoddi3> -- -00a12823 sw a0,16(sp) -- -34998863 beq s3,s1,80001e48 -- -01410b13 addi s6,sp,20 -- -00100c13 li s8,1 -- -000a8613 mv a2,s5 -- -00000693 li a3,0 -- -000b8513 mv a0,s7 -- -00048593 mv a1,s1 -- -221000ef jal ra,80002534 <__udivdi3> -- -00000693 li a3,0 -- -000a8613 mv a2,s5 -- -00050b93 mv s7,a0 -- -00058493 mv s1,a1 -- -6ad000ef jal ra,800029d4 <__umoddi3> -- -00ab2023 sw a0,0(s6) -- -000c0693 mv a3,s8 -- -004b0b13 addi s6,s6,4 -- -001c0c13 addi s8,s8,1 -- -fc9994e3 bne s3,s1,80001b04 -- -fd5bf2e3 bgeu s7,s5,80001b04 -- -008c5e63 bge s8,s0,80001b60 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001b48 -- -fff40413 addi s0,s0,-1 -- -014d2023 sw s4,0(s10) -- -fe8c46e3 blt s8,s0,80001b48 -- -00269613 slli a2,a3,0x2 -- -01010793 addi a5,sp,16 -- -00c78633 add a2,a5,a2 -- -00062703 lw a4,0(a2) -- -05700693 li a3,87 -- -00e96463 bltu s2,a4,80001b7c -- -03000693 li a3,48 -- -00d706b3 add a3,a4,a3 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001b80 -- -0ff6f713 andi a4,a3,255 -- -00ed2023 sw a4,0(s10) -- -01010793 addi a5,sp,16 -- -ffc60713 addi a4,a2,-4 -- -e6c78ee3 beq a5,a2,80001a18 -- -00070613 mv a2,a4 -- -fc9ff06f j 80001b6c -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -ee0712e3 bnez a4,80001a94 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe0706e3 beqz a4,80001ba8 -- -ed5ff06f j 80001a94 -- -14c12083 lw ra,332(sp) -- -14812403 lw s0,328(sp) -- -14412483 lw s1,324(sp) -- -14012903 lw s2,320(sp) -- -13c12983 lw s3,316(sp) -- -13812a03 lw s4,312(sp) -- -13412a83 lw s5,308(sp) -- -13012b03 lw s6,304(sp) -- -12c12b83 lw s7,300(sp) -- -12812c03 lw s8,296(sp) -- -12412c83 lw s9,292(sp) -- -12012d03 lw s10,288(sp) -- -11c12d83 lw s11,284(sp) -- -15010113 addi sp,sp,336 -- -00008067 ret -- -00030a13 mv s4,t1 -- -0016c303 lbu t1,1(a3) -- -000c8693 mv a3,s9 -- -e51ff06f j 80001a5c -- -0016ce03 lbu t3,1(a3) -- -fd030593 addi a1,t1,-48 -- -000c8693 mv a3,s9 -- -fd0e0713 addi a4,t3,-48 -- -000e0313 mv t1,t3 -- -02e96663 bltu s2,a4,80001c50 -- -00259713 slli a4,a1,0x2 -- -00b705b3 add a1,a4,a1 -- -00168693 addi a3,a3,1 -- -00159593 slli a1,a1,0x1 -- -01c585b3 add a1,a1,t3 -- -0006ce03 lbu t3,0(a3) -- -fd058593 addi a1,a1,-48 -- -fd0e0713 addi a4,t3,-48 -- -000e0313 mv t1,t3 -- -fce97ee3 bgeu s2,a4,80001c28 -- -e00456e3 bgez s0,80001a5c -- -00058413 mv s0,a1 -- -fff00593 li a1,-1 -- -e01ff06f j 80001a5c -- -0016c303 lbu t1,1(a3) -- -000c8693 mv a3,s9 -- -df5ff06f j 80001a5c -- -00412783 lw a5,4(sp) -- -0007a683 lw a3,0(a5) -- -00478493 addi s1,a5,4 -- -20068a63 beqz a3,80001e8c -- -0a805663 blez s0,80001d28 -- -02d00713 li a4,45 -- -06ea1663 bne s4,a4,80001cf0 -- -0006c603 lbu a2,0(a3) -- -02060c63 beqz a2,80001cc4 -- -0005c863 bltz a1,80001ca0 -- -fff58593 addi a1,a1,-1 -- -fff00793 li a5,-1 -- -02f58263 beq a1,a5,80001cc0 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001ca0 -- -00168693 addi a3,a3,1 -- -00cd2023 sw a2,0(s10) -- -0006c603 lbu a2,0(a3) -- -fff40413 addi s0,s0,-1 -- -fc061ae3 bnez a2,80001c90 -- -02805063 blez s0,80001ce0 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001cc4 -- -02000793 li a5,32 -- -fff40413 addi s0,s0,-1 -- -00fd2023 sw a5,0(s10) -- -fe0414e3 bnez s0,80001cc4 -- -00912223 sw s1,4(sp) -- -d35ff06f j 80001a18 -- -800047b7 lui a5,0x80004 -- -11478693 addi a3,a5,276 # 80004114 <_end+0xffffd3b0> -- -00068513 mv a0,a3 -- -00b12623 sw a1,12(sp) -- -00d12223 sw a3,4(sp) -- -4ac010ef jal ra,800031a8 -- -40a40433 sub s0,s0,a0 -- -00412683 lw a3,4(sp) -- -00c12583 lw a1,12(sp) -- -00805e63 blez s0,80001d28 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001d10 -- -fff40413 addi s0,s0,-1 -- -014d2023 sw s4,0(s10) -- -fe0416e3 bnez s0,80001d10 -- -0006c603 lbu a2,0(a3) -- -f60612e3 bnez a2,80001c90 -- -00912223 sw s1,4(sp) -- -ce5ff06f j 80001a18 -- -00412783 lw a5,4(sp) -- -0007a683 lw a3,0(a5) -- -00478493 addi s1,a5,4 -- -014d2703 lw a4,20(s10) -- -02077713 andi a4,a4,32 -- -fe070ce3 beqz a4,80001d44 -- -0ff6f713 andi a4,a3,255 -- -00912223 sw s1,4(sp) -- -00ed2023 sw a4,0(s10) -- -cbdff06f j 80001a18 -- -00100713 li a4,1 -- -00412783 lw a5,4(sp) -- -0ea74c63 blt a4,a0,80001e60 -- -0007ae83 lw t4,0(a5) -- -00478493 addi s1,a5,4 -- -00912223 sw s1,4(sp) -- -000e8513 mv a0,t4 -- -41fed713 srai a4,t4,0x1f -- -00074a63 bltz a4,80001d94 -- -00050b93 mv s7,a0 -- -00070493 mv s1,a4 -- -00a00a93 li s5,10 -- -d51ff06f j 80001ae0 -- -014d2683 lw a3,20(s10) -- -0206f693 andi a3,a3,32 -- -fe068ce3 beqz a3,80001d94 -- -00a036b3 snez a3,a0 -- -40e00733 neg a4,a4 -- -40d704b3 sub s1,a4,a3 -- -02d00693 li a3,45 -- -40a00bb3 neg s7,a0 -- -00a00a93 li s5,10 -- -00dd2023 sw a3,0(s10) -- -d25ff06f j 80001ae0 -- -0016c303 lbu t1,1(a3) -- -00150513 addi a0,a0,1 -- -000c8693 mv a3,s9 -- -c91ff06f j 80001a5c -- -00412783 lw a5,4(sp) -- -0016c303 lbu t1,1(a3) -- -000c8693 mv a3,s9 -- -0007a583 lw a1,0(a5) -- -00478793 addi a5,a5,4 -- -00f12223 sw a5,4(sp) -- -e69ff06f j 80001c50 -- -01000a93 li s5,16 -- -00100713 li a4,1 -- -00412783 lw a5,4(sp) -- -02a74a63 blt a4,a0,80001e2c -- -00478693 addi a3,a5,4 -- -cc0518e3 bnez a0,80001ad0 -- -0007ab83 lw s7,0(a5) -- -00000493 li s1,0 -- -00d12223 sw a3,4(sp) -- -cd1ff06f j 80001ae0 -- -fff44713 not a4,s0 -- -41f75713 srai a4,a4,0x1f -- -0016c303 lbu t1,1(a3) -- -00e47433 and s0,s0,a4 -- -000c8693 mv a3,s9 -- -c35ff06f j 80001a5c -- -00778493 addi s1,a5,7 -- -ff84f793 andi a5,s1,-8 -- -0007ab83 lw s7,0(a5) -- -0047a483 lw s1,4(a5) -- -00878793 addi a5,a5,8 -- -00f12223 sw a5,4(sp) -- -c9dff06f j 80001ae0 -- -cb5bfae3 bgeu s7,s5,80001afc -- -00100713 li a4,1 -- -00000693 li a3,0 -- -00100c13 li s8,1 -- -ce8748e3 blt a4,s0,80001b48 -- -d05ff06f j 80001b60 -- -00778493 addi s1,a5,7 -- -ff84f493 andi s1,s1,-8 -- -00848793 addi a5,s1,8 -- -0004a503 lw a0,0(s1) -- -0044a703 lw a4,4(s1) -- -00f12223 sw a5,4(sp) -- -f09ff06f j 80001d80 -- -00800a93 li s5,8 -- -f71ff06f j 80001df0 -- -00a00a93 li s5,10 -- -f69ff06f j 80001df0 -- -00805663 blez s0,80001e98 -- -02d00713 li a4,45 -- -e4ea1ae3 bne s4,a4,80001ce8 -- -800047b7 lui a5,0x80004 -- -11478693 addi a3,a5,276 # 80004114 <_end+0xffffd3b0> -- -02800613 li a2,40 -- -dedff06f j 80001c90 -- -00001737 lui a4,0x1 -- -01470713 addi a4,a4,20 # 00001014 <_tbss_end+0x1014> -- -00e50733 add a4,a0,a4 -- -00072783 lw a5,0(a4) -- -0207f793 andi a5,a5,32 -- -fe078ce3 beqz a5,80001eb4 -- -000017b7 lui a5,0x1 -- -00f50533 add a0,a0,a5 -- -00b52023 sw a1,0(a0) -- -00008067 ret -- -00001737 lui a4,0x1 -- -01470713 addi a4,a4,20 # 00001014 <_tbss_end+0x1014> -- -00e50733 add a4,a0,a4 -- -00072783 lw a5,0(a4) -- -0017f793 andi a5,a5,1 -- -fe078ce3 beqz a5,80001edc -- -000017b7 lui a5,0x1 -- -00f50533 add a0,a0,a5 -- -00052503 lw a0,0(a0) -- -0ff57513 andi a0,a0,255 -- -00008067 ret -- -00461613 slli a2,a2,0x4 -- -000016b7 lui a3,0x1 -- -00165793 srli a5,a2,0x1 -- -00b787b3 add a5,a5,a1 -- -00c68713 addi a4,a3,12 # 0000100c <_tbss_end+0x100c> -- -00e50733 add a4,a0,a4 -- -02c7d633 divu a2,a5,a2 -- -00072583 lw a1,0(a4) -- -00d50833 add a6,a0,a3 -- -0ff00893 li a7,255 -- -0805e793 ori a5,a1,128 -- -00f72023 sw a5,0(a4) -- -00468693 addi a3,a3,4 -- -00865793 srli a5,a2,0x8 -- -01182023 sw a7,0(a6) -- -0ff7f793 andi a5,a5,255 -- -00d50533 add a0,a0,a3 -- -00f52023 sw a5,0(a0) -- -0ff67613 andi a2,a2,255 -- -00c82023 sw a2,0(a6) -- -00b72023 sw a1,0(a4) -- -00008067 ret -- -00000513 li a0,0 -- -00008067 ret -- -00a00013 li zero,10 -- -0000006f j 80001f60 -- -00008067 ret -- -00008067 ret -- -00050463 beqz a0,80001f74 -- -0000006f j 80001f70 -- -00008067 ret -- -fe010113 <_init> addi sp,sp,-32 -- -00812c23 <_init+0x4> sw s0,24(sp) -- -00912a23 <_init+0x8> sw s1,20(sp) -- -00020493 <_init+0xc> mv s1,tp -- -00020413 <_init+0x10> mv s0,tp -- -40848433 <_init+0x14> sub s0,s1,s0 -- -01312623 <_init+0x18> sw s3,12(sp) -- -00058993 <_init+0x1c> mv s3,a1 -- -800075b7 <_init+0x20> lui a1,0x80007 -- -00040613 <_init+0x24> mv a2,s0 -- -d6458593 <_init+0x28> addi a1,a1,-668 # 80006d64 <_end+0x0> -- -01212823 <_init+0x2c> sw s2,16(sp) -- -00050913 <_init+0x30> mv s2,a0 -- -00020513 <_init+0x34> mv a0,tp -- -00112e23 <_init+0x38> sw ra,28(sp) -- -01412423 <_init+0x3c> sw s4,8(sp) -- -00020a13 <_init+0x40> mv s4,tp -- -679000ef <_init+0x44> jal ra,80002e34 -- -00020613 <_init+0x48> mv a2,tp -- -40960633 <_init+0x4c> sub a2,a2,s1 -- -00000593 <_init+0x50> li a1,0 -- -008a0533 <_init+0x54> add a0,s4,s0 -- -781000ef <_init+0x58> jal ra,80002f50 -- -00098593 <_init+0x5c> mv a1,s3 -- -00090513 <_init+0x60> mv a0,s2 -- -f91ff0ef <_init+0x64> jal ra,80001f6c -- -00000593 <_init+0x68> li a1,0 -- -00000513 <_init+0x6c> li a0,0 -- -1f4010ef <_init+0x70> jal ra,800031dc
-- -f71ff0ef <_init+0x74> jal ra,80001f5c -- -fc010113 addi sp,sp,-64 -- -02410313 addi t1,sp,36 -- -02b12223 sw a1,36(sp) -- -00030593 mv a1,t1 -- -00112e23 sw ra,28(sp) -- -02c12423 sw a2,40(sp) -- -02d12623 sw a3,44(sp) -- -02e12823 sw a4,48(sp) -- -02f12a23 sw a5,52(sp) -- -03012c23 sw a6,56(sp) -- -03112e23 sw a7,60(sp) -- -00612623 sw t1,12(sp) -- -99dff0ef jal ra,800019bc -- -01c12083 lw ra,28(sp) -- -00000513 li a0,0 -- -04010113 addi sp,sp,64 -- -00008067 ret -- -fb010113 addi sp,sp,-80 -- -03810313 addi t1,sp,56 -- -02812423 sw s0,40(sp) -- -00a12623 sw a0,12(sp) -- -00050413 mv s0,a0 -- -02c12c23 sw a2,56(sp) -- -00c10513 addi a0,sp,12 -- -00030613 mv a2,t1 -- -02112623 sw ra,44(sp) -- -04f12223 sw a5,68(sp) -- -02d12e23 sw a3,60(sp) -- -04e12023 sw a4,64(sp) -- -05012423 sw a6,72(sp) -- -05112623 sw a7,76(sp) -- -00612e23 sw t1,28(sp) -- -c4cff0ef jal ra,800014bc -- -00c12783 lw a5,12(sp) -- -00078023 sb zero,0(a5) # 00001000 <_tbss_end+0x1000> -- -00c12503 lw a0,12(sp) -- -02c12083 lw ra,44(sp) -- -40850533 sub a0,a0,s0 -- -02812403 lw s0,40(sp) -- -05010113 addi sp,sp,80 -- -00008067 ret -- -00000813 <__moddi3> li a6,0 -- -1405ce63 <__moddi3+0x4> bltz a1,800021f4 <__moddi3+0x160> -- -0006da63 <__moddi3+0x8> bgez a3,800020b0 <__moddi3+0x1c> -- -00c03733 <__moddi3+0xc> snez a4,a2 -- -40d007b3 <__moddi3+0x10> neg a5,a3 -- -40e786b3 <__moddi3+0x14> sub a3,a5,a4 -- -40c00633 <__moddi3+0x18> neg a2,a2 -- -00068793 <__moddi3+0x1c> mv a5,a3 -- -00060893 <__moddi3+0x20> mv a7,a2 -- -00050e13 <__moddi3+0x24> mv t3,a0 -- -00058e93 <__moddi3+0x28> mv t4,a1 -- -0c069a63 <__moddi3+0x2c> bnez a3,80002194 <__moddi3+0x100> -- -14c5f463 <__moddi3+0x30> bgeu a1,a2,8000220c <__moddi3+0x178> -- -00010737 <__moddi3+0x34> lui a4,0x10 -- -20e66c63 <__moddi3+0x38> bltu a2,a4,800022e4 <__moddi3+0x250> -- -010007b7 <__moddi3+0x3c> lui a5,0x1000 -- -42f66863 <__moddi3+0x40> bltu a2,a5,80002504 <__moddi3+0x470> -- -01865693 <__moddi3+0x44> srli a3,a2,0x18 -- -01800793 <__moddi3+0x48> li a5,24 -- -80004737 <__moddi3+0x4c> lui a4,0x80004 -- -3cc70713 <__moddi3+0x50> addi a4,a4,972 # 800043cc <_end+0xffffd668> -- -00d70733 <__moddi3+0x54> add a4,a4,a3 -- -00074703 <__moddi3+0x58> lbu a4,0(a4) -- -02000693 <__moddi3+0x5c> li a3,32 -- -00f707b3 <__moddi3+0x60> add a5,a4,a5 -- -40f68333 <__moddi3+0x64> sub t1,a3,a5 -- -00f68c63 <__moddi3+0x68> beq a3,a5,80002114 <__moddi3+0x80> -- -006595b3 <__moddi3+0x6c> sll a1,a1,t1 -- -00f557b3 <__moddi3+0x70> srl a5,a0,a5 -- -006618b3 <__moddi3+0x74> sll a7,a2,t1 -- -00b7eeb3 <__moddi3+0x78> or t4,a5,a1 -- -00651e33 <__moddi3+0x7c> sll t3,a0,t1 -- -0108d613 <__moddi3+0x80> srli a2,a7,0x10 -- -02ced7b3 <__moddi3+0x84> divu a5,t4,a2 -- -01089513 <__moddi3+0x88> slli a0,a7,0x10 -- -01055513 <__moddi3+0x8c> srli a0,a0,0x10 -- -010e5693 <__moddi3+0x90> srli a3,t3,0x10 -- -02cefeb3 <__moddi3+0x94> remu t4,t4,a2 -- -02f507b3 <__moddi3+0x98> mul a5,a0,a5 -- -010e9e93 <__moddi3+0x9c> slli t4,t4,0x10 -- -00dee733 <__moddi3+0xa0> or a4,t4,a3 -- -00f77a63 <__moddi3+0xa4> bgeu a4,a5,8000214c <__moddi3+0xb8> -- -01170733 <__moddi3+0xa8> add a4,a4,a7 -- -01176663 <__moddi3+0xac> bltu a4,a7,8000214c <__moddi3+0xb8> -- -00f77463 <__moddi3+0xb0> bgeu a4,a5,8000214c <__moddi3+0xb8> -- -01170733 <__moddi3+0xb4> add a4,a4,a7 -- -40f70733 <__moddi3+0xb8> sub a4,a4,a5 -- -02c756b3 <__moddi3+0xbc> divu a3,a4,a2 -- -010e1793 <__moddi3+0xc0> slli a5,t3,0x10 -- -0107d793 <__moddi3+0xc4> srli a5,a5,0x10 -- -02c77733 <__moddi3+0xc8> remu a4,a4,a2 -- -02d50533 <__moddi3+0xcc> mul a0,a0,a3 -- -01071713 <__moddi3+0xd0> slli a4,a4,0x10 -- -00f767b3 <__moddi3+0xd4> or a5,a4,a5 -- -14a7e063 <__moddi3+0xd8> bltu a5,a0,800022ac <__moddi3+0x218> -- -40a78533 <__moddi3+0xdc> sub a0,a5,a0 -- -00655533 <__moddi3+0xe0> srl a0,a0,t1 -- -00000593 <__moddi3+0xe4> li a1,0 -- -00080a63 <__moddi3+0xe8> beqz a6,80002190 <__moddi3+0xfc> -- -00a037b3 <__moddi3+0xec> snez a5,a0 -- -40b005b3 <__moddi3+0xf0> neg a1,a1 -- -40f585b3 <__moddi3+0xf4> sub a1,a1,a5 -- -40a00533 <__moddi3+0xf8> neg a0,a0 -- -00008067 <__moddi3+0xfc> ret -- -00050713 <__moddi3+0x100> mv a4,a0 -- -fed5e2e3 <__moddi3+0x104> bltu a1,a3,8000217c <__moddi3+0xe8> -- -000107b7 <__moddi3+0x108> lui a5,0x10 -- -14f6ee63 <__moddi3+0x10c> bltu a3,a5,800022fc <__moddi3+0x268> -- -010007b7 <__moddi3+0x110> lui a5,0x1000 -- -34f6e863 <__moddi3+0x114> bltu a3,a5,800024f8 <__moddi3+0x464> -- -0186d313 <__moddi3+0x118> srli t1,a3,0x18 -- -01800893 <__moddi3+0x11c> li a7,24 -- -800047b7 <__moddi3+0x120> lui a5,0x80004 -- -3cc78793 <__moddi3+0x124> addi a5,a5,972 # 800043cc <_end+0xffffd668> -- -006787b3 <__moddi3+0x128> add a5,a5,t1 -- -0007ce03 <__moddi3+0x12c> lbu t3,0(a5) -- -02000793 <__moddi3+0x130> li a5,32 -- -011e0e33 <__moddi3+0x134> add t3,t3,a7 -- -41c78333 <__moddi3+0x138> sub t1,a5,t3 -- -1dc79663 <__moddi3+0x13c> bne a5,t3,8000239c <__moddi3+0x308> -- -00b6e463 <__moddi3+0x140> bltu a3,a1,800021dc <__moddi3+0x148> -- -00c56a63 <__moddi3+0x144> bltu a0,a2,800021ec <__moddi3+0x158> -- -40c50733 <__moddi3+0x148> sub a4,a0,a2 -- -40d585b3 <__moddi3+0x14c> sub a1,a1,a3 -- -00e53533 <__moddi3+0x150> sltu a0,a0,a4 -- -40a585b3 <__moddi3+0x154> sub a1,a1,a0 -- -00070513 <__moddi3+0x158> mv a0,a4 -- -f8dff06f <__moddi3+0x15c> j 8000217c <__moddi3+0xe8> -- -00a037b3 <__moddi3+0x160> snez a5,a0 -- -40b005b3 <__moddi3+0x164> neg a1,a1 -- -40f585b3 <__moddi3+0x168> sub a1,a1,a5 -- -40a00533 <__moddi3+0x16c> neg a0,a0 -- -fff00813 <__moddi3+0x170> li a6,-1 -- -e95ff06f <__moddi3+0x174> j 8000209c <__moddi3+0x8> -- -00061663 <__moddi3+0x178> bnez a2,80002218 <__moddi3+0x184> -- -00100893 <__moddi3+0x17c> li a7,1 -- -02d8d8b3 <__moddi3+0x180> divu a7,a7,a3 -- -00010737 <__moddi3+0x184> lui a4,0x10 -- -0ae8e863 <__moddi3+0x188> bltu a7,a4,800022cc <__moddi3+0x238> -- -010007b7 <__moddi3+0x18c> lui a5,0x1000 -- -2cf8e463 <__moddi3+0x190> bltu a7,a5,800024ec <__moddi3+0x458> -- -0188d693 <__moddi3+0x194> srli a3,a7,0x18 -- -01800793 <__moddi3+0x198> li a5,24 -- -80004737 <__moddi3+0x19c> lui a4,0x80004 -- -3cc70713 <__moddi3+0x1a0> addi a4,a4,972 # 800043cc <_end+0xffffd668> -- -00d70733 <__moddi3+0x1a4> add a4,a4,a3 -- -00074703 <__moddi3+0x1a8> lbu a4,0(a4) -- -02000693 <__moddi3+0x1ac> li a3,32 -- -00f707b3 <__moddi3+0x1b0> add a5,a4,a5 -- -40f68333 <__moddi3+0x1b4> sub t1,a3,a5 -- -0cf69263 <__moddi3+0x1b8> bne a3,a5,80002310 <__moddi3+0x27c> -- -01089e93 <__moddi3+0x1bc> slli t4,a7,0x10 -- -411585b3 <__moddi3+0x1c0> sub a1,a1,a7 -- -0108d613 <__moddi3+0x1c4> srli a2,a7,0x10 -- -010ede93 <__moddi3+0x1c8> srli t4,t4,0x10 -- -02c5d6b3 <__moddi3+0x1cc> divu a3,a1,a2 -- -010e5713 <__moddi3+0x1d0> srli a4,t3,0x10 -- -02c5f5b3 <__moddi3+0x1d4> remu a1,a1,a2 -- -03d686b3 <__moddi3+0x1d8> mul a3,a3,t4 -- -01059593 <__moddi3+0x1dc> slli a1,a1,0x10 -- -00e5e733 <__moddi3+0x1e0> or a4,a1,a4 -- -00d77863 <__moddi3+0x1e4> bgeu a4,a3,80002288 <__moddi3+0x1f4> -- -01170733 <__moddi3+0x1e8> add a4,a4,a7 -- -01176463 <__moddi3+0x1ec> bltu a4,a7,80002288 <__moddi3+0x1f4> -- -2ad76463 <__moddi3+0x1f0> bltu a4,a3,8000252c <__moddi3+0x498> -- -40d70733 <__moddi3+0x1f4> sub a4,a4,a3 -- -02c75533 <__moddi3+0x1f8> divu a0,a4,a2 -- -010e1e13 <__moddi3+0x1fc> slli t3,t3,0x10 -- -010e5e13 <__moddi3+0x200> srli t3,t3,0x10 -- -02c77733 <__moddi3+0x204> remu a4,a4,a2 -- -03d50533 <__moddi3+0x208> mul a0,a0,t4 -- -01071713 <__moddi3+0x20c> slli a4,a4,0x10 -- -01c767b3 <__moddi3+0x210> or a5,a4,t3 -- -00a7fa63 <__moddi3+0x214> bgeu a5,a0,800022bc <__moddi3+0x228> -- -011787b3 <__moddi3+0x218> add a5,a5,a7 -- -0117e663 <__moddi3+0x21c> bltu a5,a7,800022bc <__moddi3+0x228> -- -00a7f463 <__moddi3+0x220> bgeu a5,a0,800022bc <__moddi3+0x228> -- -011787b3 <__moddi3+0x224> add a5,a5,a7 -- -40a78533 <__moddi3+0x228> sub a0,a5,a0 -- -00655533 <__moddi3+0x22c> srl a0,a0,t1 -- -00000593 <__moddi3+0x230> li a1,0 -- -eb5ff06f <__moddi3+0x234> j 8000217c <__moddi3+0xe8> -- -0ff00713 <__moddi3+0x238> li a4,255 -- -00088693 <__moddi3+0x23c> mv a3,a7 -- -f5177ee3 <__moddi3+0x240> bgeu a4,a7,80002230 <__moddi3+0x19c> -- -0088d693 <__moddi3+0x244> srli a3,a7,0x8 -- -00800793 <__moddi3+0x248> li a5,8 -- -f51ff06f <__moddi3+0x24c> j 80002230 <__moddi3+0x19c> -- -0ff00713 <__moddi3+0x250> li a4,255 -- -00060693 <__moddi3+0x254> mv a3,a2 -- -dec77ae3 <__moddi3+0x258> bgeu a4,a2,800020e0 <__moddi3+0x4c> -- -00865693 <__moddi3+0x25c> srli a3,a2,0x8 -- -00800793 <__moddi3+0x260> li a5,8 -- -de9ff06f <__moddi3+0x264> j 800020e0 <__moddi3+0x4c> -- -0ff00793 <__moddi3+0x268> li a5,255 -- -20d7f863 <__moddi3+0x26c> bgeu a5,a3,80002510 <__moddi3+0x47c> -- -0086d313 <__moddi3+0x270> srli t1,a3,0x8 -- -00800893 <__moddi3+0x274> li a7,8 -- -ea9ff06f <__moddi3+0x278> j 800021b4 <__moddi3+0x120> -- -006898b3 <__moddi3+0x27c> sll a7,a7,t1 -- -00f5d733 <__moddi3+0x280> srl a4,a1,a5 -- -0108d613 <__moddi3+0x284> srli a2,a7,0x10 -- -02c756b3 <__moddi3+0x288> divu a3,a4,a2 -- -01089e93 <__moddi3+0x28c> slli t4,a7,0x10 -- -00f557b3 <__moddi3+0x290> srl a5,a0,a5 -- -006595b3 <__moddi3+0x294> sll a1,a1,t1 -- -010ede93 <__moddi3+0x298> srli t4,t4,0x10 -- -02c77733 <__moddi3+0x29c> remu a4,a4,a2 -- -00b7e5b3 <__moddi3+0x2a0> or a1,a5,a1 -- -02de87b3 <__moddi3+0x2a4> mul a5,t4,a3 -- -0105df13 <__moddi3+0x2a8> srli t5,a1,0x10 -- -00651e33 <__moddi3+0x2ac> sll t3,a0,t1 -- -01071693 <__moddi3+0x2b0> slli a3,a4,0x10 -- -01e6e6b3 <__moddi3+0x2b4> or a3,a3,t5 -- -00f6fa63 <__moddi3+0x2b8> bgeu a3,a5,80002360 <__moddi3+0x2cc> -- -011686b3 <__moddi3+0x2bc> add a3,a3,a7 -- -0116e663 <__moddi3+0x2c0> bltu a3,a7,80002360 <__moddi3+0x2cc> -- -00f6f463 <__moddi3+0x2c4> bgeu a3,a5,80002360 <__moddi3+0x2cc> -- -011686b3 <__moddi3+0x2c8> add a3,a3,a7 -- -40f686b3 <__moddi3+0x2cc> sub a3,a3,a5 -- -02c6d733 <__moddi3+0x2d0> divu a4,a3,a2 -- -01059793 <__moddi3+0x2d4> slli a5,a1,0x10 -- -0107d793 <__moddi3+0x2d8> srli a5,a5,0x10 -- -02c6f6b3 <__moddi3+0x2dc> remu a3,a3,a2 -- -02ee8733 <__moddi3+0x2e0> mul a4,t4,a4 -- -01069593 <__moddi3+0x2e4> slli a1,a3,0x10 -- -00f5e5b3 <__moddi3+0x2e8> or a1,a1,a5 -- -00e5fa63 <__moddi3+0x2ec> bgeu a1,a4,80002394 <__moddi3+0x300> -- -011585b3 <__moddi3+0x2f0> add a1,a1,a7 -- -0115e663 <__moddi3+0x2f4> bltu a1,a7,80002394 <__moddi3+0x300> -- -00e5f463 <__moddi3+0x2f8> bgeu a1,a4,80002394 <__moddi3+0x300> -- -011585b3 <__moddi3+0x2fc> add a1,a1,a7 -- -40e585b3 <__moddi3+0x300> sub a1,a1,a4 -- -ec9ff06f <__moddi3+0x304> j 80002260 <__moddi3+0x1cc> -- -01c657b3 <__moddi3+0x308> srl a5,a2,t3 -- -006696b3 <__moddi3+0x30c> sll a3,a3,t1 -- -00d7ef33 <__moddi3+0x310> or t5,a5,a3 -- -01c5d8b3 <__moddi3+0x314> srl a7,a1,t3 -- -010f5293 <__moddi3+0x318> srli t0,t5,0x10 -- -01c557b3 <__moddi3+0x31c> srl a5,a0,t3 -- -0258deb3 <__moddi3+0x320> divu t4,a7,t0 -- -006595b3 <__moddi3+0x324> sll a1,a1,t1 -- -00b7e5b3 <__moddi3+0x328> or a1,a5,a1 -- -010f1713 <__moddi3+0x32c> slli a4,t5,0x10 -- -01075713 <__moddi3+0x330> srli a4,a4,0x10 -- -0258f7b3 <__moddi3+0x334> remu a5,a7,t0 -- -03d703b3 <__moddi3+0x338> mul t2,a4,t4 -- -0105d893 <__moddi3+0x33c> srli a7,a1,0x10 -- -00661633 <__moddi3+0x340> sll a2,a2,t1 -- -00651533 <__moddi3+0x344> sll a0,a0,t1 -- -01079793 <__moddi3+0x348> slli a5,a5,0x10 -- -0117e6b3 <__moddi3+0x34c> or a3,a5,a7 -- -0076fe63 <__moddi3+0x350> bgeu a3,t2,80002400 <__moddi3+0x36c> -- -01e686b3 <__moddi3+0x354> add a3,a3,t5 -- -fffe8793 <__moddi3+0x358> addi a5,t4,-1 -- -13e6ea63 <__moddi3+0x35c> bltu a3,t5,80002524 <__moddi3+0x490> -- -1276f863 <__moddi3+0x360> bgeu a3,t2,80002524 <__moddi3+0x490> -- -ffee8e93 <__moddi3+0x364> addi t4,t4,-2 -- -01e686b3 <__moddi3+0x368> add a3,a3,t5 -- -407686b3 <__moddi3+0x36c> sub a3,a3,t2 -- -0256d7b3 <__moddi3+0x370> divu a5,a3,t0 -- -01059593 <__moddi3+0x374> slli a1,a1,0x10 -- -0105d593 <__moddi3+0x378> srli a1,a1,0x10 -- -0256f6b3 <__moddi3+0x37c> remu a3,a3,t0 -- -02f70fb3 <__moddi3+0x380> mul t6,a4,a5 -- -01069693 <__moddi3+0x384> slli a3,a3,0x10 -- -00b6e733 <__moddi3+0x388> or a4,a3,a1 -- -01f77e63 <__moddi3+0x38c> bgeu a4,t6,8000243c <__moddi3+0x3a8> -- -01e70733 <__moddi3+0x390> add a4,a4,t5 -- -fff78693 <__moddi3+0x394> addi a3,a5,-1 # 00ffffff <_tbss_end+0xffffff> -- -0fe76863 <__moddi3+0x398> bltu a4,t5,8000251c <__moddi3+0x488> -- -0ff77663 <__moddi3+0x39c> bgeu a4,t6,8000251c <__moddi3+0x488> -- -ffe78793 <__moddi3+0x3a0> addi a5,a5,-2 -- -01e70733 <__moddi3+0x3a4> add a4,a4,t5 -- -010e9e93 <__moddi3+0x3a8> slli t4,t4,0x10 -- -000103b7 <__moddi3+0x3ac> lui t2,0x10 -- -00feeeb3 <__moddi3+0x3b0> or t4,t4,a5 -- -fff38893 <__moddi3+0x3b4> addi a7,t2,-1 # 0000ffff <_tbss_end+0xffff> -- -011ef6b3 <__moddi3+0x3b8> and a3,t4,a7 -- -01065593 <__moddi3+0x3bc> srli a1,a2,0x10 -- -010ede93 <__moddi3+0x3c0> srli t4,t4,0x10 -- -011678b3 <__moddi3+0x3c4> and a7,a2,a7 -- -031682b3 <__moddi3+0x3c8> mul t0,a3,a7 -- -031e88b3 <__moddi3+0x3cc> mul a7,t4,a7 -- -02b686b3 <__moddi3+0x3d0> mul a3,a3,a1 -- -0102d793 <__moddi3+0x3d4> srli a5,t0,0x10 -- -02be8eb3 <__moddi3+0x3d8> mul t4,t4,a1 -- -011686b3 <__moddi3+0x3dc> add a3,a3,a7 -- -00d787b3 <__moddi3+0x3e0> add a5,a5,a3 -- -41f70733 <__moddi3+0x3e4> sub a4,a4,t6 -- -0117f463 <__moddi3+0x3e8> bgeu a5,a7,80002484 <__moddi3+0x3f0> -- -007e8eb3 <__moddi3+0x3ec> add t4,t4,t2 -- -000106b7 <__moddi3+0x3f0> lui a3,0x10 -- -fff68693 <__moddi3+0x3f4> addi a3,a3,-1 # 0000ffff <_tbss_end+0xffff> -- -0107d593 <__moddi3+0x3f8> srli a1,a5,0x10 -- -00d7f7b3 <__moddi3+0x3fc> and a5,a5,a3 -- -01079793 <__moddi3+0x400> slli a5,a5,0x10 -- -00d2f2b3 <__moddi3+0x404> and t0,t0,a3 -- -01d58eb3 <__moddi3+0x408> add t4,a1,t4 -- -005787b3 <__moddi3+0x40c> add a5,a5,t0 -- -03d76863 <__moddi3+0x410> bltu a4,t4,800024d4 <__moddi3+0x440> -- -03d70463 <__moddi3+0x414> beq a4,t4,800024d0 <__moddi3+0x43c> -- -40f507b3 <__moddi3+0x418> sub a5,a0,a5 -- -00f535b3 <__moddi3+0x41c> sltu a1,a0,a5 -- -41d70733 <__moddi3+0x420> sub a4,a4,t4 -- -40b705b3 <__moddi3+0x424> sub a1,a4,a1 -- -01c59e33 <__moddi3+0x428> sll t3,a1,t3 -- -0067d533 <__moddi3+0x42c> srl a0,a5,t1 -- -00ae6533 <__moddi3+0x430> or a0,t3,a0 -- -0065d5b3 <__moddi3+0x434> srl a1,a1,t1 -- -cb1ff06f <__moddi3+0x438> j 8000217c <__moddi3+0xe8> -- -fcf57ee3 <__moddi3+0x43c> bgeu a0,a5,800024ac <__moddi3+0x418> -- -40c78633 <__moddi3+0x440> sub a2,a5,a2 -- -00c7b7b3 <__moddi3+0x444> sltu a5,a5,a2 -- -01e787b3 <__moddi3+0x448> add a5,a5,t5 -- -40fe8eb3 <__moddi3+0x44c> sub t4,t4,a5 -- -00060793 <__moddi3+0x450> mv a5,a2 -- -fc5ff06f <__moddi3+0x454> j 800024ac <__moddi3+0x418> -- -0108d693 <__moddi3+0x458> srli a3,a7,0x10 -- -01000793 <__moddi3+0x45c> li a5,16 -- -d3dff06f <__moddi3+0x460> j 80002230 <__moddi3+0x19c> -- -0106d313 <__moddi3+0x464> srli t1,a3,0x10 -- -01000893 <__moddi3+0x468> li a7,16 -- -cb5ff06f <__moddi3+0x46c> j 800021b4 <__moddi3+0x120> -- -01065693 <__moddi3+0x470> srli a3,a2,0x10 -- -01000793 <__moddi3+0x474> li a5,16 -- -bd5ff06f <__moddi3+0x478> j 800020e0 <__moddi3+0x4c> -- -00068313 <__moddi3+0x47c> mv t1,a3 -- -00000893 <__moddi3+0x480> li a7,0 -- -c9dff06f <__moddi3+0x484> j 800021b4 <__moddi3+0x120> -- -00068793 <__moddi3+0x488> mv a5,a3 -- -f1dff06f <__moddi3+0x48c> j 8000243c <__moddi3+0x3a8> -- -00078e93 <__moddi3+0x490> mv t4,a5 -- -ed9ff06f <__moddi3+0x494> j 80002400 <__moddi3+0x36c> -- -01170733 <__moddi3+0x498> add a4,a4,a7 -- -d59ff06f <__moddi3+0x49c> j 80002288 <__moddi3+0x1f4> -- -00068e13 <__udivdi3> mv t3,a3 -- -00060893 <__udivdi3+0x4> mv a7,a2 -- -00050313 <__udivdi3+0x8> mv t1,a0 -- -00058813 <__udivdi3+0xc> mv a6,a1 -- -0c069e63 <__udivdi3+0x10> bnez a3,80002620 <__udivdi3+0xec> -- -12c5fa63 <__udivdi3+0x14> bgeu a1,a2,8000267c <__udivdi3+0x148> -- -000107b7 <__udivdi3+0x18> lui a5,0x10 -- -20f66a63 <__udivdi3+0x1c> bltu a2,a5,80002764 <__udivdi3+0x230> -- -010007b7 <__udivdi3+0x20> lui a5,0x1000 -- -42f66663 <__udivdi3+0x24> bltu a2,a5,80002984 <__udivdi3+0x450> -- -01865713 <__udivdi3+0x28> srli a4,a2,0x18 -- -01800e13 <__udivdi3+0x2c> li t3,24 -- -800047b7 <__udivdi3+0x30> lui a5,0x80004 -- -3cc78793 <__udivdi3+0x34> addi a5,a5,972 # 800043cc <_end+0xffffd668> -- -00e787b3 <__udivdi3+0x38> add a5,a5,a4 -- -0007c783 <__udivdi3+0x3c> lbu a5,0(a5) -- -02000713 <__udivdi3+0x40> li a4,32 -- -01c78e33 <__udivdi3+0x44> add t3,a5,t3 -- -41c707b3 <__udivdi3+0x48> sub a5,a4,t3 -- -01c70c63 <__udivdi3+0x4c> beq a4,t3,80002598 <__udivdi3+0x64> -- -00f59833 <__udivdi3+0x50> sll a6,a1,a5 -- -01c55e33 <__udivdi3+0x54> srl t3,a0,t3 -- -00f618b3 <__udivdi3+0x58> sll a7,a2,a5 -- -010e6833 <__udivdi3+0x5c> or a6,t3,a6 -- -00f51333 <__udivdi3+0x60> sll t1,a0,a5 -- -0108d593 <__udivdi3+0x64> srli a1,a7,0x10 -- -02b85533 <__udivdi3+0x68> divu a0,a6,a1 -- -01089693 <__udivdi3+0x6c> slli a3,a7,0x10 -- -0106d693 <__udivdi3+0x70> srli a3,a3,0x10 -- -01035793 <__udivdi3+0x74> srli a5,t1,0x10 -- -02b87733 <__udivdi3+0x78> remu a4,a6,a1 -- -02a68633 <__udivdi3+0x7c> mul a2,a3,a0 -- -01071713 <__udivdi3+0x80> slli a4,a4,0x10 -- -00f76833 <__udivdi3+0x84> or a6,a4,a5 -- -00c87c63 <__udivdi3+0x88> bgeu a6,a2,800025d4 <__udivdi3+0xa0> -- -01180833 <__udivdi3+0x8c> add a6,a6,a7 -- -fff50793 <__udivdi3+0x90> addi a5,a0,-1 -- -01186463 <__udivdi3+0x94> bltu a6,a7,800025d0 <__udivdi3+0x9c> -- -3ec86863 <__udivdi3+0x98> bltu a6,a2,800029bc <__udivdi3+0x488> -- -00078513 <__udivdi3+0x9c> mv a0,a5 -- -40c80833 <__udivdi3+0xa0> sub a6,a6,a2 -- -02b85633 <__udivdi3+0xa4> divu a2,a6,a1 -- -01031313 <__udivdi3+0xa8> slli t1,t1,0x10 -- -01035313 <__udivdi3+0xac> srli t1,t1,0x10 -- -02b87833 <__udivdi3+0xb0> remu a6,a6,a1 -- -02c686b3 <__udivdi3+0xb4> mul a3,a3,a2 -- -01081813 <__udivdi3+0xb8> slli a6,a6,0x10 -- -00686833 <__udivdi3+0xbc> or a6,a6,t1 -- -00d87e63 <__udivdi3+0xc0> bgeu a6,a3,80002610 <__udivdi3+0xdc> -- -01088833 <__udivdi3+0xc4> add a6,a7,a6 -- -fff60793 <__udivdi3+0xc8> addi a5,a2,-1 -- -01186663 <__udivdi3+0xcc> bltu a6,a7,8000260c <__udivdi3+0xd8> -- -ffe60613 <__udivdi3+0xd0> addi a2,a2,-2 -- -00d86463 <__udivdi3+0xd4> bltu a6,a3,80002610 <__udivdi3+0xdc> -- -00078613 <__udivdi3+0xd8> mv a2,a5 -- -01051513 <__udivdi3+0xdc> slli a0,a0,0x10 -- -00c56533 <__udivdi3+0xe0> or a0,a0,a2 -- -00000593 <__udivdi3+0xe4> li a1,0 -- -00008067 <__udivdi3+0xe8> ret -- -00d5f863 <__udivdi3+0xec> bgeu a1,a3,80002630 <__udivdi3+0xfc> -- -00000593 <__udivdi3+0xf0> li a1,0 -- -00000513 <__udivdi3+0xf4> li a0,0 -- -00008067 <__udivdi3+0xf8> ret -- -000107b7 <__udivdi3+0xfc> lui a5,0x10 -- -14f6e463 <__udivdi3+0x100> bltu a3,a5,8000277c <__udivdi3+0x248> -- -010007b7 <__udivdi3+0x104> lui a5,0x1000 -- -32f6e263 <__udivdi3+0x108> bltu a3,a5,80002960 <__udivdi3+0x42c> -- -0186d713 <__udivdi3+0x10c> srli a4,a3,0x18 -- -01800813 <__udivdi3+0x110> li a6,24 -- -800047b7 <__udivdi3+0x114> lui a5,0x80004 -- -3cc78793 <__udivdi3+0x118> addi a5,a5,972 # 800043cc <_end+0xffffd668> -- -00e787b3 <__udivdi3+0x11c> add a5,a5,a4 -- -0007ce03 <__udivdi3+0x120> lbu t3,0(a5) -- -02000793 <__udivdi3+0x124> li a5,32 -- -010e0e33 <__udivdi3+0x128> add t3,t3,a6 -- -41c78eb3 <__udivdi3+0x12c> sub t4,a5,t3 -- -1dc79863 <__udivdi3+0x130> bne a5,t3,80002834 <__udivdi3+0x300> -- -32b6e463 <__udivdi3+0x134> bltu a3,a1,80002990 <__udivdi3+0x45c> -- -00c53633 <__udivdi3+0x138> sltu a2,a0,a2 -- -00164513 <__udivdi3+0x13c> xori a0,a2,1 -- -00000593 <__udivdi3+0x140> li a1,0 -- -00008067 <__udivdi3+0x144> ret -- -00061663 <__udivdi3+0x148> bnez a2,80002688 <__udivdi3+0x154> -- -00100793 <__udivdi3+0x14c> li a5,1 -- -02c7d8b3 <__udivdi3+0x150> divu a7,a5,a2 -- -000107b7 <__udivdi3+0x154> lui a5,0x10 -- -0cf8e063 <__udivdi3+0x158> bltu a7,a5,8000274c <__udivdi3+0x218> -- -010007b7 <__udivdi3+0x15c> lui a5,0x1000 -- -2ef8e263 <__udivdi3+0x160> bltu a7,a5,80002978 <__udivdi3+0x444> -- -0188d713 <__udivdi3+0x164> srli a4,a7,0x18 -- -01800e13 <__udivdi3+0x168> li t3,24 -- -800047b7 <__udivdi3+0x16c> lui a5,0x80004 -- -3cc78793 <__udivdi3+0x170> addi a5,a5,972 # 800043cc <_end+0xffffd668> -- -00e787b3 <__udivdi3+0x174> add a5,a5,a4 -- -0007c683 <__udivdi3+0x178> lbu a3,0(a5) -- -02000793 <__udivdi3+0x17c> li a5,32 -- -01c68e33 <__udivdi3+0x180> add t3,a3,t3 -- -41c78fb3 <__udivdi3+0x184> sub t6,a5,t3 -- -0dc79a63 <__udivdi3+0x188> bne a5,t3,80002790 <__udivdi3+0x25c> -- -01089f13 <__udivdi3+0x18c> slli t5,a7,0x10 -- -41158733 <__udivdi3+0x190> sub a4,a1,a7 -- -0108de93 <__udivdi3+0x194> srli t4,a7,0x10 -- -010f5f13 <__udivdi3+0x198> srli t5,t5,0x10 -- -00100593 <__udivdi3+0x19c> li a1,1 -- -03d75533 <__udivdi3+0x1a0> divu a0,a4,t4 -- -01035793 <__udivdi3+0x1a4> srli a5,t1,0x10 -- -03d77733 <__udivdi3+0x1a8> remu a4,a4,t4 -- -03e506b3 <__udivdi3+0x1ac> mul a3,a0,t5 -- -01071713 <__udivdi3+0x1b0> slli a4,a4,0x10 -- -00f767b3 <__udivdi3+0x1b4> or a5,a4,a5 -- -00d7fc63 <__udivdi3+0x1b8> bgeu a5,a3,80002704 <__udivdi3+0x1d0> -- -011787b3 <__udivdi3+0x1bc> add a5,a5,a7 -- -fff50713 <__udivdi3+0x1c0> addi a4,a0,-1 -- -0117e463 <__udivdi3+0x1c4> bltu a5,a7,80002700 <__udivdi3+0x1cc> -- -2cd7e663 <__udivdi3+0x1c8> bltu a5,a3,800029c8 <__udivdi3+0x494> -- -00070513 <__udivdi3+0x1cc> mv a0,a4 -- -40d787b3 <__udivdi3+0x1d0> sub a5,a5,a3 -- -03d7d633 <__udivdi3+0x1d4> divu a2,a5,t4 -- -01031313 <__udivdi3+0x1d8> slli t1,t1,0x10 -- -01035313 <__udivdi3+0x1dc> srli t1,t1,0x10 -- -03d7f7b3 <__udivdi3+0x1e0> remu a5,a5,t4 -- -03e60f33 <__udivdi3+0x1e4> mul t5,a2,t5 -- -01079793 <__udivdi3+0x1e8> slli a5,a5,0x10 -- -0067e7b3 <__udivdi3+0x1ec> or a5,a5,t1 -- -01e7fe63 <__udivdi3+0x1f0> bgeu a5,t5,80002740 <__udivdi3+0x20c> -- -00f887b3 <__udivdi3+0x1f4> add a5,a7,a5 -- -fff60713 <__udivdi3+0x1f8> addi a4,a2,-1 -- -0117e663 <__udivdi3+0x1fc> bltu a5,a7,8000273c <__udivdi3+0x208> -- -ffe60613 <__udivdi3+0x200> addi a2,a2,-2 -- -01e7e463 <__udivdi3+0x204> bltu a5,t5,80002740 <__udivdi3+0x20c> -- -00070613 <__udivdi3+0x208> mv a2,a4 -- -01051513 <__udivdi3+0x20c> slli a0,a0,0x10 -- -00c56533 <__udivdi3+0x210> or a0,a0,a2 -- -00008067 <__udivdi3+0x214> ret -- -0ff00793 <__udivdi3+0x218> li a5,255 -- -00088713 <__udivdi3+0x21c> mv a4,a7 -- -f517f6e3 <__udivdi3+0x220> bgeu a5,a7,800026a0 <__udivdi3+0x16c> -- -0088d713 <__udivdi3+0x224> srli a4,a7,0x8 -- -00800e13 <__udivdi3+0x228> li t3,8 -- -f41ff06f <__udivdi3+0x22c> j 800026a0 <__udivdi3+0x16c> -- -0ff00793 <__udivdi3+0x230> li a5,255 -- -00060713 <__udivdi3+0x234> mv a4,a2 -- -dec7fce3 <__udivdi3+0x238> bgeu a5,a2,80002564 <__udivdi3+0x30> -- -00865713 <__udivdi3+0x23c> srli a4,a2,0x8 -- -00800e13 <__udivdi3+0x240> li t3,8 -- -dedff06f <__udivdi3+0x244> j 80002564 <__udivdi3+0x30> -- -0ff00793 <__udivdi3+0x248> li a5,255 -- -1ed7f663 <__udivdi3+0x24c> bgeu a5,a3,8000296c <__udivdi3+0x438> -- -0086d713 <__udivdi3+0x250> srli a4,a3,0x8 -- -00800813 <__udivdi3+0x254> li a6,8 -- -ebdff06f <__udivdi3+0x258> j 80002648 <__udivdi3+0x114> -- -01f898b3 <__udivdi3+0x25c> sll a7,a7,t6 -- -01c5d6b3 <__udivdi3+0x260> srl a3,a1,t3 -- -0108de93 <__udivdi3+0x264> srli t4,a7,0x10 -- -03d6d633 <__udivdi3+0x268> divu a2,a3,t4 -- -01089f13 <__udivdi3+0x26c> slli t5,a7,0x10 -- -01f59833 <__udivdi3+0x270> sll a6,a1,t6 -- -01c55e33 <__udivdi3+0x274> srl t3,a0,t3 -- -010f5f13 <__udivdi3+0x278> srli t5,t5,0x10 -- -03d6f6b3 <__udivdi3+0x27c> remu a3,a3,t4 -- -010e6733 <__udivdi3+0x280> or a4,t3,a6 -- -02cf07b3 <__udivdi3+0x284> mul a5,t5,a2 -- -01075593 <__udivdi3+0x288> srli a1,a4,0x10 -- -01f51333 <__udivdi3+0x28c> sll t1,a0,t6 -- -01069693 <__udivdi3+0x290> slli a3,a3,0x10 -- -00b6e6b3 <__udivdi3+0x294> or a3,a3,a1 -- -00f6fe63 <__udivdi3+0x298> bgeu a3,a5,800027e8 <__udivdi3+0x2b4> -- -011686b3 <__udivdi3+0x29c> add a3,a3,a7 -- -fff60593 <__udivdi3+0x2a0> addi a1,a2,-1 -- -1d16ee63 <__udivdi3+0x2a4> bltu a3,a7,800029b4 <__udivdi3+0x480> -- -1cf6fc63 <__udivdi3+0x2a8> bgeu a3,a5,800029b4 <__udivdi3+0x480> -- -ffe60613 <__udivdi3+0x2ac> addi a2,a2,-2 -- -011686b3 <__udivdi3+0x2b0> add a3,a3,a7 -- -40f686b3 <__udivdi3+0x2b4> sub a3,a3,a5 -- -03d6d7b3 <__udivdi3+0x2b8> divu a5,a3,t4 -- -01071e13 <__udivdi3+0x2bc> slli t3,a4,0x10 -- -010e5e13 <__udivdi3+0x2c0> srli t3,t3,0x10 -- -03d6f6b3 <__udivdi3+0x2c4> remu a3,a3,t4 -- -02ff0533 <__udivdi3+0x2c8> mul a0,t5,a5 -- -01069713 <__udivdi3+0x2cc> slli a4,a3,0x10 -- -01c76733 <__udivdi3+0x2d0> or a4,a4,t3 -- -00a77e63 <__udivdi3+0x2d4> bgeu a4,a0,80002824 <__udivdi3+0x2f0> -- -01170733 <__udivdi3+0x2d8> add a4,a4,a7 -- -fff78693 <__udivdi3+0x2dc> addi a3,a5,-1 -- -19176863 <__udivdi3+0x2e0> bltu a4,a7,800029a4 <__udivdi3+0x470> -- -18a77663 <__udivdi3+0x2e4> bgeu a4,a0,800029a4 <__udivdi3+0x470> -- -ffe78793 <__udivdi3+0x2e8> addi a5,a5,-2 -- -01170733 <__udivdi3+0x2ec> add a4,a4,a7 -- -01061593 <__udivdi3+0x2f0> slli a1,a2,0x10 -- -40a70733 <__udivdi3+0x2f4> sub a4,a4,a0 -- -00f5e5b3 <__udivdi3+0x2f8> or a1,a1,a5 -- -ea5ff06f <__udivdi3+0x2fc> j 800026d4 <__udivdi3+0x1a0> -- -01c657b3 <__udivdi3+0x300> srl a5,a2,t3 -- -01d696b3 <__udivdi3+0x304> sll a3,a3,t4 -- -00d7e6b3 <__udivdi3+0x308> or a3,a5,a3 -- -01c5d333 <__udivdi3+0x30c> srl t1,a1,t3 -- -0106d713 <__udivdi3+0x310> srli a4,a3,0x10 -- -02e358b3 <__udivdi3+0x314> divu a7,t1,a4 -- -01d59833 <__udivdi3+0x318> sll a6,a1,t4 -- -01069593 <__udivdi3+0x31c> slli a1,a3,0x10 -- -01c55e33 <__udivdi3+0x320> srl t3,a0,t3 -- -0105d593 <__udivdi3+0x324> srli a1,a1,0x10 -- -02e37333 <__udivdi3+0x328> remu t1,t1,a4 -- -010e6833 <__udivdi3+0x32c> or a6,t3,a6 -- -03158e33 <__udivdi3+0x330> mul t3,a1,a7 -- -01085793 <__udivdi3+0x334> srli a5,a6,0x10 -- -01d61633 <__udivdi3+0x338> sll a2,a2,t4 -- -01031313 <__udivdi3+0x33c> slli t1,t1,0x10 -- -00f367b3 <__udivdi3+0x340> or a5,t1,a5 -- -01c7fe63 <__udivdi3+0x344> bgeu a5,t3,80002894 <__udivdi3+0x360> -- -00d787b3 <__udivdi3+0x348> add a5,a5,a3 -- -fff88313 <__udivdi3+0x34c> addi t1,a7,-1 -- -12d7e463 <__udivdi3+0x350> bltu a5,a3,800029ac <__udivdi3+0x478> -- -13c7f263 <__udivdi3+0x354> bgeu a5,t3,800029ac <__udivdi3+0x478> -- -ffe88893 <__udivdi3+0x358> addi a7,a7,-2 -- -00d787b3 <__udivdi3+0x35c> add a5,a5,a3 -- -41c787b3 <__udivdi3+0x360> sub a5,a5,t3 -- -02e7d333 <__udivdi3+0x364> divu t1,a5,a4 -- -01081813 <__udivdi3+0x368> slli a6,a6,0x10 -- -01085813 <__udivdi3+0x36c> srli a6,a6,0x10 -- -02e7f7b3 <__udivdi3+0x370> remu a5,a5,a4 -- -026585b3 <__udivdi3+0x374> mul a1,a1,t1 -- -01079793 <__udivdi3+0x378> slli a5,a5,0x10 -- -0107e833 <__udivdi3+0x37c> or a6,a5,a6 -- -00b87e63 <__udivdi3+0x380> bgeu a6,a1,800028d0 <__udivdi3+0x39c> -- -00d80833 <__udivdi3+0x384> add a6,a6,a3 -- -fff30793 <__udivdi3+0x388> addi a5,t1,-1 -- -0cd86e63 <__udivdi3+0x38c> bltu a6,a3,8000299c <__udivdi3+0x468> -- -0cb87c63 <__udivdi3+0x390> bgeu a6,a1,8000299c <__udivdi3+0x468> -- -ffe30313 <__udivdi3+0x394> addi t1,t1,-2 -- -00d80833 <__udivdi3+0x398> add a6,a6,a3 -- -01089893 <__udivdi3+0x39c> slli a7,a7,0x10 -- -00010f37 <__udivdi3+0x3a0> lui t5,0x10 -- -0068e8b3 <__udivdi3+0x3a4> or a7,a7,t1 -- -ffff0793 <__udivdi3+0x3a8> addi a5,t5,-1 # 0000ffff <_tbss_end+0xffff> -- -00f8f733 <__udivdi3+0x3ac> and a4,a7,a5 -- -0108d313 <__udivdi3+0x3b0> srli t1,a7,0x10 -- -00f677b3 <__udivdi3+0x3b4> and a5,a2,a5 -- -01065613 <__udivdi3+0x3b8> srli a2,a2,0x10 -- -02f70e33 <__udivdi3+0x3bc> mul t3,a4,a5 -- -02c70733 <__udivdi3+0x3c0> mul a4,a4,a2 -- -02f307b3 <__udivdi3+0x3c4> mul a5,t1,a5 -- -010e5693 <__udivdi3+0x3c8> srli a3,t3,0x10 -- -02c30633 <__udivdi3+0x3cc> mul a2,t1,a2 -- -00f70733 <__udivdi3+0x3d0> add a4,a4,a5 -- -00e68733 <__udivdi3+0x3d4> add a4,a3,a4 -- -40b80833 <__udivdi3+0x3d8> sub a6,a6,a1 -- -00f77463 <__udivdi3+0x3dc> bgeu a4,a5,80002918 <__udivdi3+0x3e4> -- -01e60633 <__udivdi3+0x3e0> add a2,a2,t5 -- -01075313 <__udivdi3+0x3e4> srli t1,a4,0x10 -- -00c30633 <__udivdi3+0x3e8> add a2,t1,a2 -- -02c86a63 <__udivdi3+0x3ec> bltu a6,a2,80002954 <__udivdi3+0x420> -- -00c80863 <__udivdi3+0x3f0> beq a6,a2,80002934 <__udivdi3+0x400> -- -00088513 <__udivdi3+0x3f4> mv a0,a7 -- -00000593 <__udivdi3+0x3f8> li a1,0 -- -00008067 <__udivdi3+0x3fc> ret -- -000106b7 <__udivdi3+0x400> lui a3,0x10 -- -fff68693 <__udivdi3+0x404> addi a3,a3,-1 # 0000ffff <_tbss_end+0xffff> -- -00d77733 <__udivdi3+0x408> and a4,a4,a3 -- -01071793 <__udivdi3+0x40c> slli a5,a4,0x10 -- -00de7e33 <__udivdi3+0x410> and t3,t3,a3 -- -01d51533 <__udivdi3+0x414> sll a0,a0,t4 -- -01c787b3 <__udivdi3+0x418> add a5,a5,t3 -- -fcf57ce3 <__udivdi3+0x41c> bgeu a0,a5,80002928 <__udivdi3+0x3f4> -- -fff88513 <__udivdi3+0x420> addi a0,a7,-1 -- -00000593 <__udivdi3+0x424> li a1,0 -- -00008067 <__udivdi3+0x428> ret -- -0106d713 <__udivdi3+0x42c> srli a4,a3,0x10 -- -01000813 <__udivdi3+0x430> li a6,16 -- -ce1ff06f <__udivdi3+0x434> j 80002648 <__udivdi3+0x114> -- -00068713 <__udivdi3+0x438> mv a4,a3 -- -00000813 <__udivdi3+0x43c> li a6,0 -- -cd5ff06f <__udivdi3+0x440> j 80002648 <__udivdi3+0x114> -- -0108d713 <__udivdi3+0x444> srli a4,a7,0x10 -- -01000e13 <__udivdi3+0x448> li t3,16 -- -d21ff06f <__udivdi3+0x44c> j 800026a0 <__udivdi3+0x16c> -- -01065713 <__udivdi3+0x450> srli a4,a2,0x10 -- -01000e13 <__udivdi3+0x454> li t3,16 -- -bd9ff06f <__udivdi3+0x458> j 80002564 <__udivdi3+0x30> -- -00000593 <__udivdi3+0x45c> li a1,0 -- -00100513 <__udivdi3+0x460> li a0,1 -- -00008067 <__udivdi3+0x464> ret -- -00078313 <__udivdi3+0x468> mv t1,a5 -- -f31ff06f <__udivdi3+0x46c> j 800028d0 <__udivdi3+0x39c> -- -00068793 <__udivdi3+0x470> mv a5,a3 -- -e7dff06f <__udivdi3+0x474> j 80002824 <__udivdi3+0x2f0> -- -00030893 <__udivdi3+0x478> mv a7,t1 -- -ee5ff06f <__udivdi3+0x47c> j 80002894 <__udivdi3+0x360> -- -00058613 <__udivdi3+0x480> mv a2,a1 -- -e31ff06f <__udivdi3+0x484> j 800027e8 <__udivdi3+0x2b4> -- -ffe50513 <__udivdi3+0x488> addi a0,a0,-2 -- -01180833 <__udivdi3+0x48c> add a6,a6,a7 -- -c11ff06f <__udivdi3+0x490> j 800025d4 <__udivdi3+0xa0> -- -ffe50513 <__udivdi3+0x494> addi a0,a0,-2 -- -011787b3 <__udivdi3+0x498> add a5,a5,a7 -- -d35ff06f <__udivdi3+0x49c> j 80002704 <__udivdi3+0x1d0> -- -00068793 <__umoddi3> mv a5,a3 -- -00060813 <__umoddi3+0x4> mv a6,a2 -- -00050893 <__umoddi3+0x8> mv a7,a0 -- -00058713 <__umoddi3+0xc> mv a4,a1 -- -00058e13 <__umoddi3+0x10> mv t3,a1 -- -0c069063 <__umoddi3+0x14> bnez a3,80002aa8 <__umoddi3+0xd4> -- -12c5f063 <__umoddi3+0x18> bgeu a1,a2,80002b0c <__umoddi3+0x138> -- -00010737 <__umoddi3+0x1c> lui a4,0x10 -- -1ee66863 <__umoddi3+0x20> bltu a2,a4,80002be4 <__umoddi3+0x210> -- -010007b7 <__umoddi3+0x24> lui a5,0x1000 -- -40f66463 <__umoddi3+0x28> bltu a2,a5,80002e04 <__umoddi3+0x430> -- -01865693 <__umoddi3+0x2c> srli a3,a2,0x18 -- -01800793 <__umoddi3+0x30> li a5,24 -- -80004737 <__umoddi3+0x34> lui a4,0x80004 -- -3cc70713 <__umoddi3+0x38> addi a4,a4,972 # 800043cc <_end+0xffffd668> -- -00d70733 <__umoddi3+0x3c> add a4,a4,a3 -- -00074703 <__umoddi3+0x40> lbu a4,0(a4) -- -02000693 <__umoddi3+0x44> li a3,32 -- -00f707b3 <__umoddi3+0x48> add a5,a4,a5 -- -40f68333 <__umoddi3+0x4c> sub t1,a3,a5 -- -00f68c63 <__umoddi3+0x50> beq a3,a5,80002a3c <__umoddi3+0x68> -- -006595b3 <__umoddi3+0x54> sll a1,a1,t1 -- -00f557b3 <__umoddi3+0x58> srl a5,a0,a5 -- -00661833 <__umoddi3+0x5c> sll a6,a2,t1 -- -00b7ee33 <__umoddi3+0x60> or t3,a5,a1 -- -006518b3 <__umoddi3+0x64> sll a7,a0,t1 -- -01085613 <__umoddi3+0x68> srli a2,a6,0x10 -- -02ce57b3 <__umoddi3+0x6c> divu a5,t3,a2 -- -01081513 <__umoddi3+0x70> slli a0,a6,0x10 -- -01055513 <__umoddi3+0x74> srli a0,a0,0x10 -- -0108d693 <__umoddi3+0x78> srli a3,a7,0x10 -- -02ce7e33 <__umoddi3+0x7c> remu t3,t3,a2 -- -02f507b3 <__umoddi3+0x80> mul a5,a0,a5 -- -010e1e13 <__umoddi3+0x84> slli t3,t3,0x10 -- -00de6733 <__umoddi3+0x88> or a4,t3,a3 -- -00f77a63 <__umoddi3+0x8c> bgeu a4,a5,80002a74 <__umoddi3+0xa0> -- -01070733 <__umoddi3+0x90> add a4,a4,a6 -- -01076663 <__umoddi3+0x94> bltu a4,a6,80002a74 <__umoddi3+0xa0> -- -00f77463 <__umoddi3+0x98> bgeu a4,a5,80002a74 <__umoddi3+0xa0> -- -01070733 <__umoddi3+0x9c> add a4,a4,a6 -- -40f70733 <__umoddi3+0xa0> sub a4,a4,a5 -- -02c756b3 <__umoddi3+0xa4> divu a3,a4,a2 -- -01089793 <__umoddi3+0xa8> slli a5,a7,0x10 -- -0107d793 <__umoddi3+0xac> srli a5,a5,0x10 -- -02c77733 <__umoddi3+0xb0> remu a4,a4,a2 -- -02d50533 <__umoddi3+0xb4> mul a0,a0,a3 -- -01071713 <__umoddi3+0xb8> slli a4,a4,0x10 -- -00f767b3 <__umoddi3+0xbc> or a5,a4,a5 -- -10a7ec63 <__umoddi3+0xc0> bltu a5,a0,80002bac <__umoddi3+0x1d8> -- -40a78533 <__umoddi3+0xc4> sub a0,a5,a0 -- -00655533 <__umoddi3+0xc8> srl a0,a0,t1 -- -00000593 <__umoddi3+0xcc> li a1,0 -- -00008067 <__umoddi3+0xd0> ret -- -00050813 <__umoddi3+0xd4> mv a6,a0 -- -fed5ece3 <__umoddi3+0xd8> bltu a1,a3,80002aa4 <__umoddi3+0xd0> -- -000107b7 <__umoddi3+0xdc> lui a5,0x10 -- -14f6e463 <__umoddi3+0xe0> bltu a3,a5,80002bfc <__umoddi3+0x228> -- -010007b7 <__umoddi3+0xe4> lui a5,0x1000 -- -32f6ee63 <__umoddi3+0xe8> bltu a3,a5,80002df8 <__umoddi3+0x424> -- -0186d313 <__umoddi3+0xec> srli t1,a3,0x18 -- -01800893 <__umoddi3+0xf0> li a7,24 -- -800047b7 <__umoddi3+0xf4> lui a5,0x80004 -- -3cc78793 <__umoddi3+0xf8> addi a5,a5,972 # 800043cc <_end+0xffffd668> -- -006787b3 <__umoddi3+0xfc> add a5,a5,t1 -- -0007c303 <__umoddi3+0x100> lbu t1,0(a5) -- -02000793 <__umoddi3+0x104> li a5,32 -- -01130333 <__umoddi3+0x108> add t1,t1,a7 -- -406788b3 <__umoddi3+0x10c> sub a7,a5,t1 -- -1a679c63 <__umoddi3+0x110> bne a5,t1,80002c9c <__umoddi3+0x2c8> -- -00b6e463 <__umoddi3+0x114> bltu a3,a1,80002af0 <__umoddi3+0x11c> -- -00c56a63 <__umoddi3+0x118> bltu a0,a2,80002b00 <__umoddi3+0x12c> -- -40c50833 <__umoddi3+0x11c> sub a6,a0,a2 -- -40d585b3 <__umoddi3+0x120> sub a1,a1,a3 -- -01053733 <__umoddi3+0x124> sltu a4,a0,a6 -- -40e58733 <__umoddi3+0x128> sub a4,a1,a4 -- -00080513 <__umoddi3+0x12c> mv a0,a6 -- -00070593 <__umoddi3+0x130> mv a1,a4 -- -00008067 <__umoddi3+0x134> ret -- -00061663 <__umoddi3+0x138> bnez a2,80002b18 <__umoddi3+0x144> -- -00100713 <__umoddi3+0x13c> li a4,1 -- -02c75833 <__umoddi3+0x140> divu a6,a4,a2 -- -00010737 <__umoddi3+0x144> lui a4,0x10 -- -0ae86863 <__umoddi3+0x148> bltu a6,a4,80002bcc <__umoddi3+0x1f8> -- -010007b7 <__umoddi3+0x14c> lui a5,0x1000 -- -2cf86463 <__umoddi3+0x150> bltu a6,a5,80002dec <__umoddi3+0x418> -- -01885693 <__umoddi3+0x154> srli a3,a6,0x18 -- -01800793 <__umoddi3+0x158> li a5,24 -- -80004737 <__umoddi3+0x15c> lui a4,0x80004 -- -3cc70713 <__umoddi3+0x160> addi a4,a4,972 # 800043cc <_end+0xffffd668> -- -00d70733 <__umoddi3+0x164> add a4,a4,a3 -- -00074703 <__umoddi3+0x168> lbu a4,0(a4) -- -02000693 <__umoddi3+0x16c> li a3,32 -- -00f707b3 <__umoddi3+0x170> add a5,a4,a5 -- -40f68333 <__umoddi3+0x174> sub t1,a3,a5 -- -0cf69263 <__umoddi3+0x178> bne a3,a5,80002c10 <__umoddi3+0x23c> -- -01081e13 <__umoddi3+0x17c> slli t3,a6,0x10 -- -410585b3 <__umoddi3+0x180> sub a1,a1,a6 -- -01085613 <__umoddi3+0x184> srli a2,a6,0x10 -- -010e5e13 <__umoddi3+0x188> srli t3,t3,0x10 -- -02c5d6b3 <__umoddi3+0x18c> divu a3,a1,a2 -- -0108d713 <__umoddi3+0x190> srli a4,a7,0x10 -- -02c5f5b3 <__umoddi3+0x194> remu a1,a1,a2 -- -03c686b3 <__umoddi3+0x198> mul a3,a3,t3 -- -01059593 <__umoddi3+0x19c> slli a1,a1,0x10 -- -00e5e733 <__umoddi3+0x1a0> or a4,a1,a4 -- -00d77863 <__umoddi3+0x1a4> bgeu a4,a3,80002b88 <__umoddi3+0x1b4> -- -01070733 <__umoddi3+0x1a8> add a4,a4,a6 -- -01076463 <__umoddi3+0x1ac> bltu a4,a6,80002b88 <__umoddi3+0x1b4> -- -2ad76463 <__umoddi3+0x1b0> bltu a4,a3,80002e2c <__umoddi3+0x458> -- -40d70733 <__umoddi3+0x1b4> sub a4,a4,a3 -- -02c75533 <__umoddi3+0x1b8> divu a0,a4,a2 -- -01089893 <__umoddi3+0x1bc> slli a7,a7,0x10 -- -0108d893 <__umoddi3+0x1c0> srli a7,a7,0x10 -- -02c77733 <__umoddi3+0x1c4> remu a4,a4,a2 -- -03c50533 <__umoddi3+0x1c8> mul a0,a0,t3 -- -01071713 <__umoddi3+0x1cc> slli a4,a4,0x10 -- -011767b3 <__umoddi3+0x1d0> or a5,a4,a7 -- -00a7fa63 <__umoddi3+0x1d4> bgeu a5,a0,80002bbc <__umoddi3+0x1e8> -- -010787b3 <__umoddi3+0x1d8> add a5,a5,a6 -- -0107e663 <__umoddi3+0x1dc> bltu a5,a6,80002bbc <__umoddi3+0x1e8> -- -00a7f463 <__umoddi3+0x1e0> bgeu a5,a0,80002bbc <__umoddi3+0x1e8> -- -010787b3 <__umoddi3+0x1e4> add a5,a5,a6 -- -40a78533 <__umoddi3+0x1e8> sub a0,a5,a0 -- -00655533 <__umoddi3+0x1ec> srl a0,a0,t1 -- -00000593 <__umoddi3+0x1f0> li a1,0 -- -00008067 <__umoddi3+0x1f4> ret -- -0ff00713 <__umoddi3+0x1f8> li a4,255 -- -00080693 <__umoddi3+0x1fc> mv a3,a6 -- -f5077ee3 <__umoddi3+0x200> bgeu a4,a6,80002b30 <__umoddi3+0x15c> -- -00885693 <__umoddi3+0x204> srli a3,a6,0x8 -- -00800793 <__umoddi3+0x208> li a5,8 -- -f51ff06f <__umoddi3+0x20c> j 80002b30 <__umoddi3+0x15c> -- -0ff00713 <__umoddi3+0x210> li a4,255 -- -00060693 <__umoddi3+0x214> mv a3,a2 -- -e0c77ee3 <__umoddi3+0x218> bgeu a4,a2,80002a08 <__umoddi3+0x34> -- -00865693 <__umoddi3+0x21c> srli a3,a2,0x8 -- -00800793 <__umoddi3+0x220> li a5,8 -- -e11ff06f <__umoddi3+0x224> j 80002a08 <__umoddi3+0x34> -- -0ff00793 <__umoddi3+0x228> li a5,255 -- -20d7f863 <__umoddi3+0x22c> bgeu a5,a3,80002e10 <__umoddi3+0x43c> -- -0086d313 <__umoddi3+0x230> srli t1,a3,0x8 -- -00800893 <__umoddi3+0x234> li a7,8 -- -ebdff06f <__umoddi3+0x238> j 80002ac8 <__umoddi3+0xf4> -- -00681833 <__umoddi3+0x23c> sll a6,a6,t1 -- -00f5d733 <__umoddi3+0x240> srl a4,a1,a5 -- -01085613 <__umoddi3+0x244> srli a2,a6,0x10 -- -02c756b3 <__umoddi3+0x248> divu a3,a4,a2 -- -01081e13 <__umoddi3+0x24c> slli t3,a6,0x10 -- -00f557b3 <__umoddi3+0x250> srl a5,a0,a5 -- -006595b3 <__umoddi3+0x254> sll a1,a1,t1 -- -010e5e13 <__umoddi3+0x258> srli t3,t3,0x10 -- -02c77733 <__umoddi3+0x25c> remu a4,a4,a2 -- -00b7e5b3 <__umoddi3+0x260> or a1,a5,a1 -- -02de07b3 <__umoddi3+0x264> mul a5,t3,a3 -- -0105de93 <__umoddi3+0x268> srli t4,a1,0x10 -- -006518b3 <__umoddi3+0x26c> sll a7,a0,t1 -- -01071693 <__umoddi3+0x270> slli a3,a4,0x10 -- -01d6e6b3 <__umoddi3+0x274> or a3,a3,t4 -- -00f6fa63 <__umoddi3+0x278> bgeu a3,a5,80002c60 <__umoddi3+0x28c> -- -010686b3 <__umoddi3+0x27c> add a3,a3,a6 -- -0106e663 <__umoddi3+0x280> bltu a3,a6,80002c60 <__umoddi3+0x28c> -- -00f6f463 <__umoddi3+0x284> bgeu a3,a5,80002c60 <__umoddi3+0x28c> -- -010686b3 <__umoddi3+0x288> add a3,a3,a6 -- -40f686b3 <__umoddi3+0x28c> sub a3,a3,a5 -- -02c6d733 <__umoddi3+0x290> divu a4,a3,a2 -- -01059793 <__umoddi3+0x294> slli a5,a1,0x10 -- -0107d793 <__umoddi3+0x298> srli a5,a5,0x10 -- -02c6f6b3 <__umoddi3+0x29c> remu a3,a3,a2 -- -02ee0733 <__umoddi3+0x2a0> mul a4,t3,a4 -- -01069593 <__umoddi3+0x2a4> slli a1,a3,0x10 -- -00f5e5b3 <__umoddi3+0x2a8> or a1,a1,a5 -- -00e5fa63 <__umoddi3+0x2ac> bgeu a1,a4,80002c94 <__umoddi3+0x2c0> -- -010585b3 <__umoddi3+0x2b0> add a1,a1,a6 -- -0105e663 <__umoddi3+0x2b4> bltu a1,a6,80002c94 <__umoddi3+0x2c0> -- -00e5f463 <__umoddi3+0x2b8> bgeu a1,a4,80002c94 <__umoddi3+0x2c0> -- -010585b3 <__umoddi3+0x2bc> add a1,a1,a6 -- -40e585b3 <__umoddi3+0x2c0> sub a1,a1,a4 -- -ec9ff06f <__umoddi3+0x2c4> j 80002b60 <__umoddi3+0x18c> -- -006657b3 <__umoddi3+0x2c8> srl a5,a2,t1 -- -011696b3 <__umoddi3+0x2cc> sll a3,a3,a7 -- -00d7eeb3 <__umoddi3+0x2d0> or t4,a5,a3 -- -0065d833 <__umoddi3+0x2d4> srl a6,a1,t1 -- -010edf93 <__umoddi3+0x2d8> srli t6,t4,0x10 -- -006557b3 <__umoddi3+0x2dc> srl a5,a0,t1 -- -03f85e33 <__umoddi3+0x2e0> divu t3,a6,t6 -- -011595b3 <__umoddi3+0x2e4> sll a1,a1,a7 -- -00b7e5b3 <__umoddi3+0x2e8> or a1,a5,a1 -- -010e9713 <__umoddi3+0x2ec> slli a4,t4,0x10 -- -01075713 <__umoddi3+0x2f0> srli a4,a4,0x10 -- -03f877b3 <__umoddi3+0x2f4> remu a5,a6,t6 -- -03c702b3 <__umoddi3+0x2f8> mul t0,a4,t3 -- -0105d813 <__umoddi3+0x2fc> srli a6,a1,0x10 -- -01161633 <__umoddi3+0x300> sll a2,a2,a7 -- -01151533 <__umoddi3+0x304> sll a0,a0,a7 -- -01079793 <__umoddi3+0x308> slli a5,a5,0x10 -- -0107e6b3 <__umoddi3+0x30c> or a3,a5,a6 -- -0056fe63 <__umoddi3+0x310> bgeu a3,t0,80002d00 <__umoddi3+0x32c> -- -01d686b3 <__umoddi3+0x314> add a3,a3,t4 -- -fffe0793 <__umoddi3+0x318> addi a5,t3,-1 -- -13d6ea63 <__umoddi3+0x31c> bltu a3,t4,80002e24 <__umoddi3+0x450> -- -1256f863 <__umoddi3+0x320> bgeu a3,t0,80002e24 <__umoddi3+0x450> -- -ffee0e13 <__umoddi3+0x324> addi t3,t3,-2 -- -01d686b3 <__umoddi3+0x328> add a3,a3,t4 -- -405686b3 <__umoddi3+0x32c> sub a3,a3,t0 -- -03f6d7b3 <__umoddi3+0x330> divu a5,a3,t6 -- -01059593 <__umoddi3+0x334> slli a1,a1,0x10 -- -0105d593 <__umoddi3+0x338> srli a1,a1,0x10 -- -03f6f6b3 <__umoddi3+0x33c> remu a3,a3,t6 -- -02f70f33 <__umoddi3+0x340> mul t5,a4,a5 -- -01069693 <__umoddi3+0x344> slli a3,a3,0x10 -- -00b6e733 <__umoddi3+0x348> or a4,a3,a1 -- -01e77e63 <__umoddi3+0x34c> bgeu a4,t5,80002d3c <__umoddi3+0x368> -- -01d70733 <__umoddi3+0x350> add a4,a4,t4 -- -fff78693 <__umoddi3+0x354> addi a3,a5,-1 # 00ffffff <_tbss_end+0xffffff> -- -0fd76863 <__umoddi3+0x358> bltu a4,t4,80002e1c <__umoddi3+0x448> -- -0fe77663 <__umoddi3+0x35c> bgeu a4,t5,80002e1c <__umoddi3+0x448> -- -ffe78793 <__umoddi3+0x360> addi a5,a5,-2 -- -01d70733 <__umoddi3+0x364> add a4,a4,t4 -- -010e1e13 <__umoddi3+0x368> slli t3,t3,0x10 -- -000102b7 <__umoddi3+0x36c> lui t0,0x10 -- -00fe6e33 <__umoddi3+0x370> or t3,t3,a5 -- -fff28813 <__umoddi3+0x374> addi a6,t0,-1 # 0000ffff <_tbss_end+0xffff> -- -010e76b3 <__umoddi3+0x378> and a3,t3,a6 -- -01065593 <__umoddi3+0x37c> srli a1,a2,0x10 -- -010e5e13 <__umoddi3+0x380> srli t3,t3,0x10 -- -01067833 <__umoddi3+0x384> and a6,a2,a6 -- -03068fb3 <__umoddi3+0x388> mul t6,a3,a6 -- -030e0833 <__umoddi3+0x38c> mul a6,t3,a6 -- -02b686b3 <__umoddi3+0x390> mul a3,a3,a1 -- -010fd793 <__umoddi3+0x394> srli a5,t6,0x10 -- -02be0e33 <__umoddi3+0x398> mul t3,t3,a1 -- -010686b3 <__umoddi3+0x39c> add a3,a3,a6 -- -00d787b3 <__umoddi3+0x3a0> add a5,a5,a3 -- -41e70733 <__umoddi3+0x3a4> sub a4,a4,t5 -- -0107f463 <__umoddi3+0x3a8> bgeu a5,a6,80002d84 <__umoddi3+0x3b0> -- -005e0e33 <__umoddi3+0x3ac> add t3,t3,t0 -- -000106b7 <__umoddi3+0x3b0> lui a3,0x10 -- -fff68693 <__umoddi3+0x3b4> addi a3,a3,-1 # 0000ffff <_tbss_end+0xffff> -- -0107d593 <__umoddi3+0x3b8> srli a1,a5,0x10 -- -00d7f7b3 <__umoddi3+0x3bc> and a5,a5,a3 -- -01079793 <__umoddi3+0x3c0> slli a5,a5,0x10 -- -00dfffb3 <__umoddi3+0x3c4> and t6,t6,a3 -- -01c58e33 <__umoddi3+0x3c8> add t3,a1,t3 -- -01f787b3 <__umoddi3+0x3cc> add a5,a5,t6 -- -03c76863 <__umoddi3+0x3d0> bltu a4,t3,80002dd4 <__umoddi3+0x400> -- -03c70463 <__umoddi3+0x3d4> beq a4,t3,80002dd0 <__umoddi3+0x3fc> -- -40f507b3 <__umoddi3+0x3d8> sub a5,a0,a5 -- -00f535b3 <__umoddi3+0x3dc> sltu a1,a0,a5 -- -41c70733 <__umoddi3+0x3e0> sub a4,a4,t3 -- -40b705b3 <__umoddi3+0x3e4> sub a1,a4,a1 -- -00659333 <__umoddi3+0x3e8> sll t1,a1,t1 -- -0117d533 <__umoddi3+0x3ec> srl a0,a5,a7 -- -00a36533 <__umoddi3+0x3f0> or a0,t1,a0 -- -0115d5b3 <__umoddi3+0x3f4> srl a1,a1,a7 -- -00008067 <__umoddi3+0x3f8> ret -- -fcf57ee3 <__umoddi3+0x3fc> bgeu a0,a5,80002dac <__umoddi3+0x3d8> -- -40c78633 <__umoddi3+0x400> sub a2,a5,a2 -- -00c7b7b3 <__umoddi3+0x404> sltu a5,a5,a2 -- -01d787b3 <__umoddi3+0x408> add a5,a5,t4 -- -40fe0e33 <__umoddi3+0x40c> sub t3,t3,a5 -- -00060793 <__umoddi3+0x410> mv a5,a2 -- -fc5ff06f <__umoddi3+0x414> j 80002dac <__umoddi3+0x3d8> -- -01085693 <__umoddi3+0x418> srli a3,a6,0x10 -- -01000793 <__umoddi3+0x41c> li a5,16 -- -d3dff06f <__umoddi3+0x420> j 80002b30 <__umoddi3+0x15c> -- -0106d313 <__umoddi3+0x424> srli t1,a3,0x10 -- -01000893 <__umoddi3+0x428> li a7,16 -- -cc9ff06f <__umoddi3+0x42c> j 80002ac8 <__umoddi3+0xf4> -- -01065693 <__umoddi3+0x430> srli a3,a2,0x10 -- -01000793 <__umoddi3+0x434> li a5,16 -- -bfdff06f <__umoddi3+0x438> j 80002a08 <__umoddi3+0x34> -- -00068313 <__umoddi3+0x43c> mv t1,a3 -- -00000893 <__umoddi3+0x440> li a7,0 -- -cb1ff06f <__umoddi3+0x444> j 80002ac8 <__umoddi3+0xf4> -- -00068793 <__umoddi3+0x448> mv a5,a3 -- -f1dff06f <__umoddi3+0x44c> j 80002d3c <__umoddi3+0x368> -- -00078e13 <__umoddi3+0x450> mv t3,a5 -- -ed9ff06f <__umoddi3+0x454> j 80002d00 <__umoddi3+0x32c> -- -01070733 <__umoddi3+0x458> add a4,a4,a6 -- -d59ff06f <__umoddi3+0x45c> j 80002b88 <__umoddi3+0x1b4> -- -00a5c7b3 xor a5,a1,a0 -- -0037f793 andi a5,a5,3 -- -00c508b3 add a7,a0,a2 -- -06079263 bnez a5,80002ea4 -- -00300793 li a5,3 -- -04c7fe63 bgeu a5,a2,80002ea4 -- -00357793 andi a5,a0,3 -- -00050713 mv a4,a0 -- -06079863 bnez a5,80002ec4 -- -ffc8f613 andi a2,a7,-4 -- -fe060793 addi a5,a2,-32 -- -08f76c63 bltu a4,a5,80002ef8 -- -02c77c63 bgeu a4,a2,80002e9c -- -00058693 mv a3,a1 -- -00070793 mv a5,a4 -- -0006a803 lw a6,0(a3) -- -00478793 addi a5,a5,4 -- -00468693 addi a3,a3,4 -- -ff07ae23 sw a6,-4(a5) -- -fec7e8e3 bltu a5,a2,80002e70 -- -fff60793 addi a5,a2,-1 -- -40e787b3 sub a5,a5,a4 -- -ffc7f793 andi a5,a5,-4 -- -00478793 addi a5,a5,4 -- -00f70733 add a4,a4,a5 -- -00f585b3 add a1,a1,a5 -- -01176863 bltu a4,a7,80002eac -- -00008067 ret -- -00050713 mv a4,a0 -- -ff157ce3 bgeu a0,a7,80002ea0 -- -0005c783 lbu a5,0(a1) -- -00170713 addi a4,a4,1 -- -00158593 addi a1,a1,1 -- -fef70fa3 sb a5,-1(a4) -- -ff1768e3 bltu a4,a7,80002eac -- -00008067 ret -- -0005c683 lbu a3,0(a1) -- -00170713 addi a4,a4,1 -- -00377793 andi a5,a4,3 -- -fed70fa3 sb a3,-1(a4) -- -00158593 addi a1,a1,1 -- -f80780e3 beqz a5,80002e58 -- -0005c683 lbu a3,0(a1) -- -00170713 addi a4,a4,1 -- -00377793 andi a5,a4,3 -- -fed70fa3 sb a3,-1(a4) -- -00158593 addi a1,a1,1 -- -fc079ae3 bnez a5,80002ec4 -- -f65ff06f j 80002e58 -- -0045a683 lw a3,4(a1) -- -0005a283 lw t0,0(a1) -- -0085af83 lw t6,8(a1) -- -00c5af03 lw t5,12(a1) -- -0105ae83 lw t4,16(a1) -- -0145ae03 lw t3,20(a1) -- -0185a303 lw t1,24(a1) -- -01c5a803 lw a6,28(a1) -- -00d72223 sw a3,4(a4) -- -0205a683 lw a3,32(a1) -- -00572023 sw t0,0(a4) -- -01f72423 sw t6,8(a4) -- -01e72623 sw t5,12(a4) -- -01d72823 sw t4,16(a4) -- -01c72a23 sw t3,20(a4) -- -00672c23 sw t1,24(a4) -- -01072e23 sw a6,28(a4) -- -02470713 addi a4,a4,36 -- -fed72e23 sw a3,-4(a4) -- -02458593 addi a1,a1,36 -- -faf768e3 bltu a4,a5,80002ef8 -- -f19ff06f j 80002e64 -- -00f00313 li t1,15 -- -00050713 mv a4,a0 -- -02c37e63 bgeu t1,a2,80002f94 -- -00f77793 andi a5,a4,15 -- -0a079063 bnez a5,80003000 -- -08059263 bnez a1,80002fe8 -- -ff067693 andi a3,a2,-16 -- -00f67613 andi a2,a2,15 -- -00e686b3 add a3,a3,a4 -- -00b72023 sw a1,0(a4) -- -00b72223 sw a1,4(a4) -- -00b72423 sw a1,8(a4) -- -00b72623 sw a1,12(a4) -- -01070713 addi a4,a4,16 -- -fed766e3 bltu a4,a3,80002f74 -- -00061463 bnez a2,80002f94 -- -00008067 ret -- -40c306b3 sub a3,t1,a2 -- -00269693 slli a3,a3,0x2 -- -00000297 auipc t0,0x0 -- -005686b3 add a3,a3,t0 -- -00c68067 jr 12(a3) -- -00b70723 sb a1,14(a4) -- -00b706a3 sb a1,13(a4) -- -00b70623 sb a1,12(a4) -- -00b705a3 sb a1,11(a4) -- -00b70523 sb a1,10(a4) -- -00b704a3 sb a1,9(a4) -- -00b70423 sb a1,8(a4) -- -00b703a3 sb a1,7(a4) -- -00b70323 sb a1,6(a4) -- -00b702a3 sb a1,5(a4) -- -00b70223 sb a1,4(a4) -- -00b701a3 sb a1,3(a4) -- -00b70123 sb a1,2(a4) -- -00b700a3 sb a1,1(a4) -- -00b70023 sb a1,0(a4) -- -00008067 ret -- -0ff5f593 andi a1,a1,255 -- -00859693 slli a3,a1,0x8 -- -00d5e5b3 or a1,a1,a3 -- -01059693 slli a3,a1,0x10 -- -00d5e5b3 or a1,a1,a3 -- -f6dff06f j 80002f68 -- -00279693 slli a3,a5,0x2 -- -00000297 auipc t0,0x0 -- -005686b3 add a3,a3,t0 -- -00008293 mv t0,ra -- -fa0680e7 jalr -96(a3) -- -00028093 mv ra,t0 -- -ff078793 addi a5,a5,-16 -- -40f70733 sub a4,a4,a5 -- -00f60633 add a2,a2,a5 -- -f6c378e3 bgeu t1,a2,80002f94 -- -f3dff06f j 80002f64 -- -00b56733 or a4,a0,a1 -- -fff00393 li t2,-1 -- -00377713 andi a4,a4,3 -- -10071063 bnez a4,80003138 -- -7f7f87b7 lui a5,0x7f7f8 -- -f7f78793 addi a5,a5,-129 # 7f7f7f7f <_tbss_end+0x7f7f7f7f> -- -00052603 lw a2,0(a0) -- -0005a683 lw a3,0(a1) -- -00f672b3 and t0,a2,a5 -- -00f66333 or t1,a2,a5 -- -00f282b3 add t0,t0,a5 -- -0062e2b3 or t0,t0,t1 -- -10729263 bne t0,t2,80003160 -- -08d61663 bne a2,a3,800030ec -- -00452603 lw a2,4(a0) -- -0045a683 lw a3,4(a1) -- -00f672b3 and t0,a2,a5 -- -00f66333 or t1,a2,a5 -- -00f282b3 add t0,t0,a5 -- -0062e2b3 or t0,t0,t1 -- -0c729e63 bne t0,t2,80003158 -- -06d61663 bne a2,a3,800030ec -- -00852603 lw a2,8(a0) -- -0085a683 lw a3,8(a1) -- -00f672b3 and t0,a2,a5 -- -00f66333 or t1,a2,a5 -- -00f282b3 add t0,t0,a5 -- -0062e2b3 or t0,t0,t1 -- -0c729863 bne t0,t2,8000316c -- -04d61663 bne a2,a3,800030ec -- -00c52603 lw a2,12(a0) -- -00c5a683 lw a3,12(a1) -- -00f672b3 and t0,a2,a5 -- -00f66333 or t1,a2,a5 -- -00f282b3 add t0,t0,a5 -- -0062e2b3 or t0,t0,t1 -- -0c729263 bne t0,t2,80003180 -- -02d61663 bne a2,a3,800030ec -- -01052603 lw a2,16(a0) -- -0105a683 lw a3,16(a1) -- -00f672b3 and t0,a2,a5 -- -00f66333 or t1,a2,a5 -- -00f282b3 add t0,t0,a5 -- -0062e2b3 or t0,t0,t1 -- -0a729c63 bne t0,t2,80003194 -- -01450513 addi a0,a0,20 -- -01458593 addi a1,a1,20 -- -f4d60ee3 beq a2,a3,80003044 -- -01061713 slli a4,a2,0x10 -- -01069793 slli a5,a3,0x10 -- -00f71e63 bne a4,a5,80003110 -- -01065713 srli a4,a2,0x10 -- -0106d793 srli a5,a3,0x10 -- -40f70533 sub a0,a4,a5 -- -0ff57593 andi a1,a0,255 -- -02059063 bnez a1,80003128 -- -00008067 ret -- -01075713 srli a4,a4,0x10 -- -0107d793 srli a5,a5,0x10 -- -40f70533 sub a0,a4,a5 -- -0ff57593 andi a1,a0,255 -- -00059463 bnez a1,80003128 -- -00008067 ret -- -0ff77713 andi a4,a4,255 -- -0ff7f793 andi a5,a5,255 -- -40f70533 sub a0,a4,a5 -- -00008067 ret -- -00054603 lbu a2,0(a0) -- -0005c683 lbu a3,0(a1) -- -00150513 addi a0,a0,1 -- -00158593 addi a1,a1,1 -- -00d61463 bne a2,a3,80003150 -- -fe0616e3 bnez a2,80003138 -- -40d60533 sub a0,a2,a3 -- -00008067 ret -- -00450513 addi a0,a0,4 -- -00458593 addi a1,a1,4 -- -fcd61ce3 bne a2,a3,80003138 -- -00000513 li a0,0 -- -00008067 ret -- -00850513 addi a0,a0,8 -- -00858593 addi a1,a1,8 -- -fcd612e3 bne a2,a3,80003138 -- -00000513 li a0,0 -- -00008067 ret -- -00c50513 addi a0,a0,12 -- -00c58593 addi a1,a1,12 -- -fad618e3 bne a2,a3,80003138 -- -00000513 li a0,0 -- -00008067 ret -- -01050513 addi a0,a0,16 -- -01058593 addi a1,a1,16 -- -f8d61ee3 bne a2,a3,80003138 -- -00000513 li a0,0 -- -00008067 ret -- -00050613 mv a2,a0 -- -00b606b3 add a3,a2,a1 -- -00058513 mv a0,a1 -- -00060793 mv a5,a2 -- -00059863 bnez a1,800031c8 -- -01c0006f j 800031d8 -- -00178793 addi a5,a5,1 -- -00f68863 beq a3,a5,800031d4 -- -0007c703 lbu a4,0(a5) -- -fe071ae3 bnez a4,800031c0 -- -40c78533 sub a0,a5,a2 -- -00008067 ret -- -00008067 ret -- -f6010113
addi sp,sp,-160 -- -08112e23 sw ra,156(sp) -- -08812c23 sw s0,152(sp) -- -08912a23 sw s1,148(sp) -- -0a010413 addi s0,sp,160 -- -09212823 sw s2,144(sp) -- -09312623 sw s3,140(sp) -- -09412423 sw s4,136(sp) -- -09512223 sw s5,132(sp) -- -09612023 sw s6,128(sp) -- -07712e23 sw s7,124(sp) -- -07812c23 sw s8,120(sp) -- -07912a23 sw s9,116(sp) -- -07a12823 sw s10,112(sp) -- -07b12623 sw s11,108(sp) -- -fe1fd0ef jal ra,800011f8 -- -800047b7 lui a5,0x80004 -- -ac878793 addi a5,a5,-1336 # 80003ac8 <_end+0xffffcd64> -- -fc010113 addi sp,sp,-64 -- -0007a283 lw t0,0(a5) -- -00f10693 addi a3,sp,15 -- -80004737 lui a4,0x80004 -- -fc010113 addi sp,sp,-64 -- -0b470713 addi a4,a4,180 # 800040b4 <_end+0xffffd350> -- -0047af03 lw t5,4(a5) -- -0087ae83 lw t4,8(a5) -- -00c7ae03 lw t3,12(a5) -- -0107a303 lw t1,16(a5) -- -0147a883 lw a7,20(a5) -- -0187a803 lw a6,24(a5) -- -01c7d583 lhu a1,28(a5) -- -01e7c603 lbu a2,30(a5) -- -00f10793 addi a5,sp,15 -- -ff07f793 andi a5,a5,-16 -- -00072f83 lw t6,0(a4) -- -00472503 lw a0,4(a4) -- -ff06f693 andi a3,a3,-16 -- -0057a823 sw t0,16(a5) -- -00200393 li t2,2 -- -86d1a423 sw a3,-1944(gp) # 80004584 -- -00d7a023 sw a3,0(a5) -- -0077a423 sw t2,8(a5) -- -02800393 li t2,40 -- -0077a623 sw t2,12(a5) -- -01e7aa23 sw t5,20(a5) -- -01d7ac23 sw t4,24(a5) -- -01c7ae23 sw t3,28(a5) -- -86f1a623 sw a5,-1940(gp) # 80004588 -- -f9f42023 sw t6,-128(s0) -- -0267a023 sw t1,32(a5) -- -0317a223 sw a7,36(a5) -- -0307a423 sw a6,40(a5) -- -02b79623 sh a1,44(a5) -- -02c78723 sb a2,46(a5) -- -0007a223 sw zero,4(a5) -- -00872303 lw t1,8(a4) -- -00c72883 lw a7,12(a4) -- -01072803 lw a6,16(a4) -- -01472583 lw a1,20(a4) -- -01872603 lw a2,24(a4) -- -f8a42223 sw a0,-124(s0) -- -01e74783 lbu a5,30(a4) -- -01c75683 lhu a3,28(a4) -- -80004737 lui a4,0x80004 -- -d3070513 addi a0,a4,-720 # 80003d30 <_end+0xffffcfcc> -- -80004737 lui a4,0x80004 -- -65470713 addi a4,a4,1620 # 80004654 <_end+0xffffd8f0> -- -f8f40f23 sb a5,-98(s0) -- -00a00793 li a5,10 -- -64f72e23 sw a5,1628(a4) -- -f8642423 sw t1,-120(s0) -- -f9142623 sw a7,-116(s0) -- -f9042823 sw a6,-112(s0) -- -f8b42a23 sw a1,-108(s0) -- -f8c42c23 sw a2,-104(s0) -- -f8d41e23 sh a3,-100(s0) -- -ce5fe0ef jal ra,80001ff0 -- -800045b7 lui a1,0x80004 -- -80004537 lui a0,0x80004 -- -ae858593 addi a1,a1,-1304 # 80003ae8 <_end+0xffffcd84> -- -af850513 addi a0,a0,-1288 # 80003af8 <_end+0xffffcd94> -- -cd1fe0ef jal ra,80001ff0 -- -8581a783 lw a5,-1960(gp) # 80004574 -- -78078463 beqz a5,80003ab0 -- -80004537 lui a0,0x80004 -- -b1450513 addi a0,a0,-1260 # 80003b14 <_end+0xffffcdb0> -- -cbdfe0ef jal ra,80001ff0 -- -05f5e637 lui a2,0x5f5e -- -800045b7 lui a1,0x80004 -- -80004537 lui a0,0x80004 -- -10060613 addi a2,a2,256 # 05f5e100 <_tbss_end+0x5f5e100> -- -b7458593 addi a1,a1,-1164 # 80003b74 <_end+0xffffce10> -- -b8050513 addi a0,a0,-1152 # 80003b80 <_end+0xffffce1c> -- -ca1fe0ef jal ra,80001ff0 -- -800047b7 lui a5,0x80004 -- -d3078513 addi a0,a5,-720 # 80003d30 <_end+0xffffcfcc> -- -c95fe0ef jal ra,80001ff0 -- -000027b7 lui a5,0x2 -- -71078793 addi a5,a5,1808 # 00002710 <_tbss_end+0x2710> -- -80004a37 lui s4,0x80004 -- -800044b7 lui s1,0x80004 -- -f6f42623 sw a5,-148(s0) -- -0d4a0a13 addi s4,s4,212 # 800040d4 <_end+0xffffd370> -- -0f448493 addi s1,s1,244 # 800040f4 <_end+0xffffd390> -- -8401aa23 sw zero,-1964(gp) # 80004570 -- -f6c42903 lw s2,-148(s0) -- -800047b7 lui a5,0x80004 -- -b9478513 addi a0,a5,-1132 # 80003b94 <_end+0xffffce30> -- -00090593 mv a1,s2 -- -c61fe0ef jal ra,80001ff0 -- -ebdfd0ef jal ra,80001250 -- -82a1a223 sw a0,-2012(gp) # 80004540 -- -82b1a423 sw a1,-2008(gp) # 80004544 -- -e85fd0ef jal ra,80001224 -- -00190d93 addi s11,s2,1 -- -00100a93 li s5,1 -- -00200913 li s2,2 -- -00100d13 li s10,1 -- -84a1a623 sw a0,-1972(gp) # 80004568 -- -84b1a823 sw a1,-1968(gp) # 8000456c -- -8b8fe0ef jal ra,80001474 -- -890fe0ef jal ra,80001450 -- -01ca5703 lhu a4,28(s4) -- -01ea4783 lbu a5,30(s4) -- -000a2e83 lw t4,0(s4) -- -004a2e03 lw t3,4(s4) -- -008a2303 lw t1,8(s4) -- -00ca2883 lw a7,12(s4) -- -010a2803 lw a6,16(s4) -- -014a2603 lw a2,20(s4) -- -018a2683 lw a3,24(s4) -- -fa040593 addi a1,s0,-96 -- -f8040513 addi a0,s0,-128 -- -fae41e23 sh a4,-68(s0) -- -faf40f23 sb a5,-66(s0) -- -f7242a23 sw s2,-140(s0) -- -fbd42023 sw t4,-96(s0) -- -fbc42223 sw t3,-92(s0) -- -fa642423 sw t1,-88(s0) -- -fb142623 sw a7,-84(s0) -- -fb042823 sw a6,-80(s0) -- -fac42a23 sw a2,-76(s0) -- -fad42c23 sw a3,-72(s0) -- -f7a42e23 sw s10,-132(s0) -- -c79fd0ef jal ra,80001094 -- -00050793 mv a5,a0 -- -f7442503 lw a0,-140(s0) -- -0017b793 seqz a5,a5 -- -86f1a023 sw a5,-1952(gp) # 8000457c -- -02a94863 blt s2,a0,80003460 -- -00251793 slli a5,a0,0x2 -- -00a787b3 add a5,a5,a0 -- -ffd78793 addi a5,a5,-3 -- -f7840613 addi a2,s0,-136 -- -00300593 li a1,3 -- -f6f42c23 sw a5,-136(s0) -- -bb5fd0ef jal ra,80001000 -- -f7442503 lw a0,-140(s0) -- -00150513 addi a0,a0,1 -- -f6a42a23 sw a0,-140(s0) -- -fca95ce3 bge s2,a0,80003434 -- -f7842683 lw a3,-136(s0) -- -800047b7 lui a5,0x80004 -- -65478593 addi a1,a5,1620 # 80004654 <_end+0xffffd8f0> -- -00050613 mv a2,a0 -- -87018513 addi a0,gp,-1936 # 8000458c -- -b9dfd0ef jal ra,80001010 -- -86c1a503 lw a0,-1940(gp) # 80004588 -- -e79fd0ef jal ra,800012f4 -- -85c1c703 lbu a4,-1956(gp) # 80004578 -- -04000793 li a5,64 -- -62e7f063 bgeu a5,a4,80003aa8 -- -04100b13 li s6,65 -- -00300b93 li s7,3 -- -000b0513 mv a0,s6 -- -04300593 li a1,67 -- -bd9fd0ef jal ra,80001074 -- -f7c42783 lw a5,-132(s0) -- -001b0713 addi a4,s6,1 -- -54f50c63 beq a0,a5,80003a00 -- -85c1c783 lbu a5,-1956(gp) # 80004578 -- -0ff77b13 andi s6,a4,255 -- -ff67f0e3 bgeu a5,s6,80003494 -- -f7442b03 lw s6,-140(s0) -- -f7842c03 lw s8,-136(s0) -- -001a8a93 addi s5,s5,1 -- -036b8b33 mul s6,s7,s6 -- -f7440513 addi a0,s0,-140 -- -038b4bb3 div s7,s6,s8 -- -f7742a23 sw s7,-140(s0) -- -dd5fd0ef jal ra,800012a8 -- -ef5d92e3 bne s11,s5,800033bc -- -d49fd0ef jal ra,80001224 -- -84a1a223 sw a0,-1980(gp) # 80004560 -- -84b1a423 sw a1,-1976(gp) # 80004564 -- -d69fd0ef jal ra,80001250 -- -8241a703 lw a4,-2012(gp) # 80004540 -- -8281a783 lw a5,-2008(gp) # 80004544 -- -00058893 mv a7,a1 -- -40e50733 sub a4,a0,a4 -- -8441a303 lw t1,-1980(gp) # 80004560 -- -00050813 mv a6,a0 -- -84c1a603 lw a2,-1972(gp) # 80004568 -- -8501ae83 lw t4,-1968(gp) # 8000456c -- -8481a683 lw a3,-1976(gp) # 80004564 -- -00e835b3 sltu a1,a6,a4 -- -40f887b3 sub a5,a7,a5 -- -000f4537 lui a0,0xf4 -- -40b787b3 sub a5,a5,a1 -- -24050513 addi a0,a0,576 # 000f4240 <_tbss_end+0xf4240> -- -02a78e33 mul t3,a5,a0 -- -02a735b3 mulhu a1,a4,a0 -- -40c30633 sub a2,t1,a2 -- -00c33333 sltu t1,t1,a2 -- -02a70533 mul a0,a4,a0 -- -41d686b3 sub a3,a3,t4 -- -406686b3 sub a3,a3,t1 -- -8101ae23 sw a6,-2020(gp) # 80004538 -- -00be05b3 add a1,t3,a1 -- -84d1a023 sw a3,-1984(gp) # 8000455c -- -80e1aa23 sw a4,-2028(gp) # 80004530 -- -80f1ac23 sw a5,-2024(gp) # 80004534 -- -8311a023 sw a7,-2016(gp) # 8000453c -- -82c1ae23 sw a2,-1988(gp) # 80004558 -- -fd9fe0ef jal ra,80002534 <__udivdi3> -- -800047b7 lui a5,0x80004 -- -52a7a423 sw a0,1320(a5) # 80004528 <_end+0xffffd7c4> -- -80b1a823 sw a1,-2032(gp) # 8000452c -- -d11fd0ef jal ra,8000127c -- -83c1a783 lw a5,-1988(gp) # 80004558 -- -8401a703 lw a4,-1984(gp) # 8000455c -- -800046b7 lui a3,0x80004 -- -52a6a023 sw a0,1312(a3) # 80004520 <_end+0xffffd7bc> -- -00e7e7b3 or a5,a5,a4 -- -52b6a223 sw a1,1316(a3) -- -4e078463 beqz a5,80003a70 -- -00100793 li a5,1 -- -84f1aa23 sw a5,-1964(gp) # 80004570 -- -80004537 lui a0,0x80004 -- -bf050513 addi a0,a0,-1040 # 80003bf0 <_end+0xffffce8c> -- -a55fe0ef jal ra,80001ff0 -- -800047b7 lui a5,0x80004 -- -d3078513 addi a0,a5,-720 # 80003d30 <_end+0xffffcfcc> -- -a49fe0ef jal ra,80001ff0 -- -8641a583 lw a1,-1948(gp) # 80004580 -- -80004537 lui a0,0x80004 -- -c2850513 addi a0,a0,-984 # 80003c28 <_end+0xffffcec4> -- -800044b7 lui s1,0x80004 -- -a35fe0ef jal ra,80001ff0 -- -00500593 li a1,5 -- -c4448513 addi a0,s1,-956 # 80003c44 <_end+0xffffcee0> -- -a29fe0ef jal ra,80001ff0 -- -8601a583 lw a1,-1952(gp) # 8000457c -- -80004537 lui a0,0x80004 -- -c6050513 addi a0,a0,-928 # 80003c60 <_end+0xffffcefc> -- -a19fe0ef jal ra,80001ff0 -- -00100593 li a1,1 -- -c4448513 addi a0,s1,-956 -- -a0dfe0ef jal ra,80001ff0 -- -85d1c583 lbu a1,-1955(gp) # 80004579 -- -80004537 lui a0,0x80004 -- -c7c50513 addi a0,a0,-900 # 80003c7c <_end+0xffffcf18> -- -9fdfe0ef jal ra,80001ff0 -- -80004937 lui s2,0x80004 -- -04100593 li a1,65 -- -c9890513 addi a0,s2,-872 # 80003c98 <_end+0xffffcf34> -- -9edfe0ef jal ra,80001ff0 -- -85c1c583 lbu a1,-1956(gp) # 80004578 -- -80004537 lui a0,0x80004 -- -cb450513 addi a0,a0,-844 # 80003cb4 <_end+0xffffcf50> -- -9ddfe0ef jal ra,80001ff0 -- -04200593 li a1,66 -- -c9890513 addi a0,s2,-872 -- -9d1fe0ef jal ra,80001ff0 -- -87018793 addi a5,gp,-1936 # 8000458c -- -0207a583 lw a1,32(a5) -- -80004537 lui a0,0x80004 -- -cd050513 addi a0,a0,-816 # 80003cd0 <_end+0xffffcf6c> -- -9bdfe0ef jal ra,80001ff0 -- -00700593 li a1,7 -- -c4448513 addi a0,s1,-956 -- -9b1fe0ef jal ra,80001ff0 -- -80004737 lui a4,0x80004 -- -65470713 addi a4,a4,1620 # 80004654 <_end+0xffffd8f0> -- -65c72583 lw a1,1628(a4) -- -80004537 lui a0,0x80004 -- -cec50513 addi a0,a0,-788 # 80003cec <_end+0xffffcf88> -- -999fe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -d0850513 addi a0,a0,-760 # 80003d08 <_end+0xffffcfa4> -- -98dfe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -d3450513 addi a0,a0,-716 # 80003d34 <_end+0xffffcfd0> -- -981fe0ef jal ra,80001ff0 -- -86c1a703 lw a4,-1940(gp) # 80004588 -- -800047b7 lui a5,0x80004 -- -d4478513 addi a0,a5,-700 # 80003d44 <_end+0xffffcfe0> -- -00072583 lw a1,0(a4) -- -80004db7 lui s11,0x80004 -- -80004d37 lui s10,0x80004 -- -965fe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -d6050513 addi a0,a0,-672 # 80003d60 <_end+0xffffcffc> -- -959fe0ef jal ra,80001ff0 -- -86c1a703 lw a4,-1940(gp) # 80004588 -- -d94d8513 addi a0,s11,-620 # 80003d94 <_end+0xffffd030> -- -80004cb7 lui s9,0x80004 -- -00472583 lw a1,4(a4) -- -80004ab7 lui s5,0x80004 -- -80004a37 lui s4,0x80004 -- -93dfe0ef jal ra,80001ff0 -- -00000593 li a1,0 -- -c4448513 addi a0,s1,-956 -- -931fe0ef jal ra,80001ff0 -- -86c1a703 lw a4,-1940(gp) # 80004588 -- -db0d0513 addi a0,s10,-592 # 80003db0 <_end+0xffffd04c> -- -418b0b33 sub s6,s6,s8 -- -00872583 lw a1,8(a4) -- -91dfe0ef jal ra,80001ff0 -- -00200593 li a1,2 -- -c4448513 addi a0,s1,-956 -- -911fe0ef jal ra,80001ff0 -- -86c1a703 lw a4,-1940(gp) # 80004588 -- -dccc8513 addi a0,s9,-564 # 80003dcc <_end+0xffffd068> -- -00c72583 lw a1,12(a4) -- -901fe0ef jal ra,80001ff0 -- -01100593 li a1,17 -- -c4448513 addi a0,s1,-956 -- -8f5fe0ef jal ra,80001ff0 -- -86c1a583 lw a1,-1940(gp) # 80004588 -- -de8a8513 addi a0,s5,-536 # 80003de8 <_end+0xffffd084> -- -01058593 addi a1,a1,16 -- -8e5fe0ef jal ra,80001ff0 -- -e04a0513 addi a0,s4,-508 # 80003e04 <_end+0xffffd0a0> -- -8ddfe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -e3c50513 addi a0,a0,-452 # 80003e3c <_end+0xffffd0d8> -- -8d1fe0ef jal ra,80001ff0 -- -8681a703 lw a4,-1944(gp) # 80004584 -- -800047b7 lui a5,0x80004 -- -d4478513 addi a0,a5,-700 # 80003d44 <_end+0xffffcfe0> -- -00072583 lw a1,0(a4) -- -8bdfe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -e5050513 addi a0,a0,-432 # 80003e50 <_end+0xffffd0ec> -- -8b1fe0ef jal ra,80001ff0 -- -8681a783 lw a5,-1944(gp) # 80004584 -- -d94d8513 addi a0,s11,-620 -- -0047a583 lw a1,4(a5) -- -8a1fe0ef jal ra,80001ff0 -- -00000593 li a1,0 -- -c4448513 addi a0,s1,-956 -- -895fe0ef jal ra,80001ff0 -- -8681a783 lw a5,-1944(gp) # 80004584 -- -db0d0513 addi a0,s10,-592 -- -0087a583 lw a1,8(a5) -- -885fe0ef jal ra,80001ff0 -- -00100593 li a1,1 -- -c4448513 addi a0,s1,-956 -- -879fe0ef jal ra,80001ff0 -- -8681a783 lw a5,-1944(gp) # 80004584 -- -dccc8513 addi a0,s9,-564 -- -00c7a583 lw a1,12(a5) -- -869fe0ef jal ra,80001ff0 -- -01200593 li a1,18 -- -c4448513 addi a0,s1,-956 -- -85dfe0ef jal ra,80001ff0 -- -8681a583 lw a1,-1944(gp) # 80004584 -- -de8a8513 addi a0,s5,-536 -- -01058593 addi a1,a1,16 -- -84dfe0ef jal ra,80001ff0 -- -e04a0513 addi a0,s4,-508 -- -845fe0ef jal ra,80001ff0 -- -f7442583 lw a1,-140(s0) -- -80004537 lui a0,0x80004 -- -e9450513 addi a0,a0,-364 # 80003e94 <_end+0xffffd130> -- -835fe0ef jal ra,80001ff0 -- -00500593 li a1,5 -- -c4448513 addi a0,s1,-956 -- -829fe0ef jal ra,80001ff0 -- -003b1793 slli a5,s6,0x3 -- -41678b33 sub s6,a5,s6 -- -80004537 lui a0,0x80004 -- -417b05b3 sub a1,s6,s7 -- -eb050513 addi a0,a0,-336 # 80003eb0 <_end+0xffffd14c> -- -811fe0ef jal ra,80001ff0 -- -00d00593 li a1,13 -- -c4448513 addi a0,s1,-956 -- -805fe0ef jal ra,80001ff0 -- -f7842583 lw a1,-136(s0) -- -80004537 lui a0,0x80004 -- -ecc50513 addi a0,a0,-308 # 80003ecc <_end+0xffffd168> -- -ff4fe0ef jal ra,80001ff0 -- -00700593 li a1,7 -- -c4448513 addi a0,s1,-956 -- -fe8fe0ef jal ra,80001ff0 -- -f7c42583 lw a1,-132(s0) -- -80004537 lui a0,0x80004 -- -ee850513 addi a0,a0,-280 # 80003ee8 <_end+0xffffd184> -- -fd8fe0ef jal ra,80001ff0 -- -00100593 li a1,1 -- -c4448513 addi a0,s1,-956 -- -fccfe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -f8040593 addi a1,s0,-128 -- -f0450513 addi a0,a0,-252 # 80003f04 <_end+0xffffd1a0> -- -fbcfe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -f2050513 addi a0,a0,-224 # 80003f20 <_end+0xffffd1bc> -- -fb0fe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -fa040593 addi a1,s0,-96 -- -f5850513 addi a0,a0,-168 # 80003f58 <_end+0xffffd1f4> -- -fa0fe0ef jal ra,80001ff0 -- -80004537 lui a0,0x80004 -- -f7450513 addi a0,a0,-140 # 80003f74 <_end+0xffffd210> -- -f94fe0ef jal ra,80001ff0 -- -800047b7 lui a5,0x80004 -- -d3078513 addi a0,a5,-720 # 80003d30 <_end+0xffffcfcc> -- -f88fe0ef jal ra,80001ff0 -- -f6c42483 lw s1,-148(s0) -- -83c1aa03 lw s4,-1988(gp) # 80004558 -- -8401aa83 lw s5,-1984(gp) # 8000455c -- -00048613 mv a2,s1 -- -41f4d693 srai a3,s1,0x1f -- -000a0513 mv a0,s4 -- -000a8593 mv a1,s5 -- -cadfe0ef jal ra,80002534 <__udivdi3> -- -000f47b7 lui a5,0xf4 -- -24078793 addi a5,a5,576 # 000f4240 <_tbss_end+0xf4240> -- -02f58733 mul a4,a1,a5 -- -02f535b3 mulhu a1,a0,a5 -- -02f50533 mul a0,a0,a5 -- -05f5e637 lui a2,0x5f5e -- -10060613 addi a2,a2,256 # 05f5e100 <_tbss_end+0x5f5e100> -- -00000693 li a3,0 -- -00b705b3 add a1,a4,a1 -- -c85fe0ef jal ra,80002534 <__udivdi3> -- -00050713 mv a4,a0 -- -05f5e537 lui a0,0x5f5e -- -10050513 addi a0,a0,256 # 05f5e100 <_tbss_end+0x5f5e100> -- -00058793 mv a5,a1 -- -02a495b3 mulh a1,s1,a0 -- -02a48533 mul a0,s1,a0 -- -000a0613 mv a2,s4 -- -000a8693 mv a3,s5 -- -82f1ac23 sw a5,-1992(gp) # 80004554 -- -82e1aa23 sw a4,-1996(gp) # 80004550 -- -c59fe0ef jal ra,80002534 <__udivdi3> -- -84c1a603 lw a2,-1972(gp) # 80004568 -- -8501a683 lw a3,-1968(gp) # 8000456c -- -00050713 mv a4,a0 -- -80004537 lui a0,0x80004 -- -fac50513 addi a0,a0,-84 # 80003fac <_end+0xffffd248> -- -82e1a623 sw a4,-2004(gp) # 80004548 -- -82b1a823 sw a1,-2000(gp) # 8000454c -- -ef4fe0ef jal ra,80001ff0 -- -8441a603 lw a2,-1980(gp) # 80004560 -- -8481a683 lw a3,-1976(gp) # 80004564 -- -80004537 lui a0,0x80004 -- -fc050513 addi a0,a0,-64 # 80003fc0 <_end+0xffffd25c> -- -ee0fe0ef jal ra,80001ff0 -- -83c1a603 lw a2,-1988(gp) # 80004558 -- -8401a683 lw a3,-1984(gp) # 8000455c -- -80004537 lui a0,0x80004 -- -fd450513 addi a0,a0,-44 # 80003fd4 <_end+0xffffd270> -- -eccfe0ef jal ra,80001ff0 -- -8341a603 lw a2,-1996(gp) # 80004550 -- -8381a683 lw a3,-1992(gp) # 80004554 -- -80004537 lui a0,0x80004 -- -fe850513 addi a0,a0,-24 # 80003fe8 <_end+0xffffd284> -- -eb8fe0ef jal ra,80001ff0 -- -82c1a603 lw a2,-2004(gp) # 80004548 -- -8301a683 lw a3,-2000(gp) # 8000454c -- -80004537 lui a0,0x80004 -- -01c50513 addi a0,a0,28 # 8000401c <_end+0xffffd2b8> -- -ea4fe0ef jal ra,80001ff0 -- -8241a603 lw a2,-2012(gp) # 80004540 -- -8281a683 lw a3,-2008(gp) # 80004544 -- -80004537 lui a0,0x80004 -- -05050513 addi a0,a0,80 # 80004050 <_end+0xffffd2ec> -- -e90fe0ef jal ra,80001ff0 -- -81c1a603 lw a2,-2020(gp) # 80004538 -- -8201a683 lw a3,-2016(gp) # 8000453c -- -80004537 lui a0,0x80004 -- -06450513 addi a0,a0,100 # 80004064 <_end+0xffffd300> -- -e7cfe0ef jal ra,80001ff0 -- -8141a603 lw a2,-2028(gp) # 80004530 -- -8181a683 lw a3,-2024(gp) # 80004534 -- -80004537 lui a0,0x80004 -- -07850513 addi a0,a0,120 # 80004078 <_end+0xffffd314> -- -e68fe0ef jal ra,80001ff0 -- -800047b7 lui a5,0x80004 -- -5287a603 lw a2,1320(a5) # 80004528 <_end+0xffffd7c4> -- -8101a683 lw a3,-2032(gp) # 8000452c -- -80004537 lui a0,0x80004 -- -08c50513 addi a0,a0,140 # 8000408c <_end+0xffffd328> -- -e50fe0ef jal ra,80001ff0 -- -800047b7 lui a5,0x80004 -- -5207a603 lw a2,1312(a5) # 80004520 <_end+0xffffd7bc> -- -5247a683 lw a3,1316(a5) -- -80004537 lui a0,0x80004 -- -09c50513 addi a0,a0,156 # 8000409c <_end+0xffffd338> -- -e38fe0ef jal ra,80001ff0 -- -f6040113 addi sp,s0,-160 -- -09c12083 lw ra,156(sp) -- -09812403 lw s0,152(sp) -- -09412483 lw s1,148(sp) -- -09012903 lw s2,144(sp) -- -08c12983 lw s3,140(sp) -- -08812a03 lw s4,136(sp) -- -08412a83 lw s5,132(sp) -- -08012b03 lw s6,128(sp) -- -07c12b83 lw s7,124(sp) -- -07812c03 lw s8,120(sp) -- -07412c83 lw s9,116(sp) -- -07012d03 lw s10,112(sp) -- -06c12d83 lw s11,108(sp) -- -00000513 li a0,0 -- -0a010113 addi sp,sp,160 -- -00008067 ret -- -f7c40593 addi a1,s0,-132 -- -00000513 li a0,0 -- -ef8fd0ef jal ra,80001100 -- -0004ae03 lw t3,0(s1) -- -0044a303 lw t1,4(s1) -- -0084a883 lw a7,8(s1) -- -00c4a803 lw a6,12(s1) -- -0104a503 lw a0,16(s1) -- -0144a583 lw a1,20(s1) -- -0184a603 lw a2,24(s1) -- -01c4d683 lhu a3,28(s1) -- -01e4c703 lbu a4,30(s1) -- -85c1c783 lbu a5,-1956(gp) # 80004578 -- -001b0b13 addi s6,s6,1 -- -0ffb7b13 andi s6,s6,255 -- -fbc42023 sw t3,-96(s0) -- -fa642223 sw t1,-92(s0) -- -fb142423 sw a7,-88(s0) -- -fb042623 sw a6,-84(s0) -- -faa42823 sw a0,-80(s0) -- -fab42a23 sw a1,-76(s0) -- -fac42c23 sw a2,-72(s0) -- -fad41e23 sh a3,-68(s0) -- -fae40f23 sb a4,-66(s0) -- -8751a223 sw s5,-1948(gp) # 80004580 -- -000a8b93 mv s7,s5 -- -a367f6e3 bgeu a5,s6,80003494 -- -a4dff06f j 800034b8 -- -80004537 lui a0,0x80004 -- -bb850513 addi a0,a0,-1096 # 80003bb8 <_end+0xffffce54> -- -d78fe0ef jal ra,80001ff0 -- -f6c42703 lw a4,-148(s0) -- -00271793 slli a5,a4,0x2 -- -00e787b3 add a5,a5,a4 -- -80004737 lui a4,0x80004 -- -00179793 slli a5,a5,0x1 -- -d3070513 addi a0,a4,-720 # 80003d30 <_end+0xffffcfcc> -- -f6f42623 sw a5,-148(s0) -- -d58fe0ef jal ra,80001ff0 -- -8541a783 lw a5,-1964(gp) # 80004570 -- -8e0780e3 beqz a5,80003380 -- -af1ff06f j 80003594 -- -00300b93 li s7,3 -- -a0dff06f j 800034b8 -- -80004537 lui a0,0x80004 -- -b4450513 addi a0,a0,-1212 # 80003b44 <_end+0xffffcde0> -- -d38fe0ef jal ra,80001ff0 -- -87dff06f j 80003338 -- -fff00513 li a0,-1 -- -00008067 ret -- -59524844 -- -4e4f5453 -- -52502045 -- -4152474f -- -53202c4d -- -20454d4f -- -49525453 -- -0000474e -- -56202c43 -- -69737265 -- -32206e6f -- -0000322e -- -79726844 -- -6e6f7473 -- -65422065 -- -6d68636e -- -2c6b7261 -- -0d732520 -- -0000000a -- -676f7250 -- -206d6172 -- -706d6f63 -- -64656c69 -- -74697720 -- -72272068 -- -73696765 -- -27726574 -- -74746120 -- -75626972 -- -0a0d6574 -- -00000000 -- -676f7250 -- -206d6172 -- -706d6f63 -- -64656c69 -- -74697720 -- -74756f68 -- -65722720 -- -74736967 -- -20277265 -- -72747461 -- -74756269 -- -000a0d65 -- -79636472 -- -28656c63 -- -00000029 -- -6e697355 -- -73252067 -- -5a48202c -- -0d64253d -- -0000000a -- -69797254 -- -2520676e -- -75722064 -- -7420736e -- -756f7268 -- -44206867 -- -73797268 -- -656e6f74 -- -000a0d3a -- -7361654d -- -64657275 -- -6d697420 -- -6f742065 -- -6d73206f -- -206c6c61 -- -6f206f74 -- -69617462 -- -656d206e -- -6e696e61 -- -6c756667 -- -73657220 -- -73746c75 -- -00000a0d -- -616e6946 -- -6176206c -- -7365756c -- -20666f20 -- -20656874 -- -69726176 -- -656c6261 -- -73752073 -- -69206465 -- -6874206e -- -65622065 -- -6d68636e -- -3a6b7261 -- -00000a0d -- -5f746e49 -- -626f6c47 -- -2020203a -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -0d642520 -- -0000000a -- -6c6f6f42 -- -6f6c475f -- -20203a62 -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -315f6843 -- -6f6c475f -- -20203a62 -- -20202020 -- -20202020 -- -0d632520 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -0d632520 -- -0000000a -- -325f6843 -- -6f6c475f -- -20203a62 -- -20202020 -- -20202020 -- -0d632520 -- -0000000a -- -5f727241 -- -6c475f31 -- -385b626f -- -20203a5d -- -20202020 -- -0d642520 -- -0000000a -- -5f727241 -- -6c475f32 -- -385b626f -- -5d375b5d -- -2020203a -- -0d642520 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -6d754e20 -- -5f726562 -- -525f664f -- -20736e75 -- -3031202b -- -00000a0d -- -5f727450 -- -626f6c47 -- -0a0d3e2d -- -00000000 -- -74502020 -- -6f435f72 -- -203a706d -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -6d692820 -- -6d656c70 -- -61746e65 -- -6e6f6974 -- -7065642d -- -65646e65 -- -0d29746e -- -0000000a -- -69442020 -- -3a726373 -- -20202020 -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -6e452020 -- -435f6d75 -- -3a706d6f -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -6e492020 -- -6f435f74 -- -203a706d -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -74532020 -- -6f435f72 -- -203a706d -- -20202020 -- -20202020 -- -0d732520 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -52484420 -- -4f545359 -- -5020454e -- -52474f52 -- -202c4d41 -- -454d4f53 -- -52545320 -- -0d474e49 -- -0000000a -- -7478654e -- -7274505f -- -6f6c475f -- -0d3e2d62 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -6d692820 -- -6d656c70 -- -61746e65 -- -6e6f6974 -- -7065642d -- -65646e65 -- -2c29746e -- -6d617320 -- -73612065 -- -6f626120 -- -0a0d6576 -- -00000000 -- -5f746e49 -- -6f4c5f31 -- -20203a63 -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -5f746e49 -- -6f4c5f32 -- -20203a63 -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -5f746e49 -- -6f4c5f33 -- -20203a63 -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -6d756e45 -- -636f4c5f -- -2020203a -- -20202020 -- -20202020 -- -0d642520 -- -0000000a -- -5f727453 -- -6f4c5f31 -- -20203a63 -- -20202020 -- -20202020 -- -0d732520 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -52484420 -- -4f545359 -- -5020454e -- -52474f52 -- -202c4d41 -- -54532731 -- -52545320 -- -0d474e49 -- -0000000a -- -5f727453 -- -6f4c5f32 -- -20203a63 -- -20202020 -- -20202020 -- -0d732520 -- -0000000a -- -20202020 -- -20202020 -- -756f6873 -- -6220646c -- -20203a65 -- -52484420 -- -4f545359 -- -5020454e -- -52474f52 -- -202c4d41 -- -444e2732 -- -52545320 -- -0d474e49 -- -0000000a -- -69676542 -- -6974206e -- -203a656d -- -646c6c25 -- -00000a0d -- -20646e45 -- -656d6974 -- -6c25203a -- -0a0d646c -- -00000000 -- -72657355 -- -6d697420 -- -25203a65 -- -0d646c6c -- -0000000a -- -7263694d -- -6365736f -- -73646e6f -- -726f6620 -- -656e6f20 -- -6e757220 -- -72687420 -- -6867756f -- -72684420 -- -6f747379 -- -203a656e -- -646c6c25 -- -00000a0d -- -79726844 -- -6e6f7473 -- -70207365 -- -53207265 -- -6e6f6365 -- -20203a64 -- -20202020 -- -20202020 -- -20202020 -- -20202020 -- -20202020 -- -646c6c25 -- -00000a0d -- -69676542 -- -6e69206e -- -203a7473 -- -646c6c25 -- -00000a0d -- -20646e45 -- -74736e69 -- -6c25203a -- -0a0d646c -- -00000000 -- -72657355 -- -736e6920 -- -25203a74 -- -0d646c6c -- -0000000a -- -2a435049 -- -203a4d31 -- -6c6c250a -- -000a0d64 -- -6e617262 -- -6d206863 -- -65737369 -- -0a203a73 -- -646c6c25 -- -00000a0d -- -59524844 -- -4e4f5453 -- -52502045 -- -4152474f -- -31202c4d -- -20545327 -- -49525453 -- -0000474e -- -59524844 -- -4e4f5453 -- -52502045 -- -4152474f -- -32202c4d -- -20444e27 -- -49525453 -- -0000474e -- -59524844 -- -4e4f5453 -- -52502045 -- -4152474f -- -33202c4d -- -20445227 -- -49525453 -- -0000474e -- -6c756e28 -- -0000296c -- -8000164c -- -800015dc -- -80001658 -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -80001660 -- -800015dc -- -800015dc -- -800015bc -- -800017f8 -- -800015dc -- -800015bc -- -800015fc -- -800015fc -- -800015fc -- -800015fc -- -800015fc -- -800015fc -- -800015fc -- -800015fc -- -800015fc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -80001810 -- -80001794 -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800015dc -- -800017e8 -- -800015dc -- -800015dc -- -80001958 -- -8000167c -- -800015dc -- -800015dc -- -80001838 -- -800015dc -- -80001964 -- -800015dc -- -800015dc -- -800017c8 -- -80001c60 -- -80001a84 -- -80001ba8 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001dd0 -- -80001a84 -- -80001a84 -- -80001c00 -- -80001e14 -- -80001a84 -- -80001c00 -- -80001c10 -- -80001c10 -- -80001c10 -- -80001c10 -- -80001c10 -- -80001c10 -- -80001c10 -- -80001c10 -- -80001c10 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001d38 -- -80001d60 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001a84 -- -80001dc0 -- -80001a84 -- -80001a84 -- -80001e7c -- -80001a9c -- -80001a84 -- -80001a84 -- -80001c6c -- -80001a84 -- -80001e84 -- -80001a84 -- -80001a84 -- -80001dec -- -02020100 -- -03030303 -- -04040404 -- -04040404 -- -05050505 -- -05050505 -- -05050505 -- -05050505 -- -06060606 -- -06060606 -- -06060606 -- -06060606 -- -06060606 -- -06060606 -- -06060606 -- -06060606 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -07070707 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -08080808 -- -00000010 -- -00000000 -- -00527a01 -- -01017c01 -- -00020d1b -- -00000010 -- -00000018 -- -ffffdbac -- -000004a0 -- -00000000 -- -00000010 -- -0000002c -- -ffffe038 -- -000004a0 -- -00000000 -- -00000010 -- -00000040 -- -ffffe4c4 -- -00000460 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- -00000000 -- \ No newline at end of file diff --git a/examples/zedboard/scripts/cva5-ip-core-base.tcl b/examples/zedboard/scripts/cva5-ip-core-base.tcl deleted file mode 100644 index 8553185..0000000 --- a/examples/zedboard/scripts/cva5-ip-core-base.tcl +++ /dev/null @@ -1,1164 +0,0 @@ -#***************************************************************************************** -# Vivado (TM) v2019.2.1 (64-bit) -# -# cva5-ip-core-base.tcl: Tcl script for re-creating project 'cva5-ip-core-base' -# -# Generated by Vivado on Fri Jul 24 11:19:38 PDT 2020 -# IP Build 2729494 on Thu Dec 5 07:38:25 MST 2019 -# -# This file contains the Vivado Tcl commands for re-creating the project to the state* -# when this script was generated. In order to re-create the project, please sourcevthis -# file in the Vivado Tcl Shell. -# -# * Note that the runs in the created project will be configured the same way as the -# original project, however they will not be launched automatically. To regenerate the -# run results please launch the synthesis/implementation runs as needed. -# - - -# Set the reference directory for source file relative paths (by default the value is script directory path) -set origin_dir [ file dirname [ file normalize [ info script ] ] ] -source $origin_dir/../../../scripts/xilinx/cva5_wrapper_IP.tcl - -set origin_dir [ file dirname [ file normalize [ info script ] ] ] -source $origin_dir/../../../scripts/xilinx/local_memory_IP.tcl - -set origin_dir [ file dirname [ file normalize [ info script ] ] ] -# Use origin directory path location variable, if specified in the tcl shell -if { [info exists ::origin_dir_loc] } { - set origin_dir $::origin_dir_loc -} - -# Set the project name -set _xil_proj_name_ "cva5-ip-core-base-test" - -# Use project name variable, if specified in the tcl shell -if { [info exists ::user_project_name] } { - set _xil_proj_name_ $::user_project_name -} - -variable script_file -set script_file "cva5-ip-core-base.tcl" - -# Help information for this script -proc print_help {} { - variable script_file - puts "\nDescription:" - puts "Recreate a Vivado project from this script. The created project will be" - puts "functionally equivalent to the original project for which this script was" - puts "generated. The script contains commands for creating a project, filesets," - puts "runs, adding/importing sources and setting properties on various objects.\n" - puts "Syntax:" - puts "$script_file" - puts "$script_file -tclargs \[--origin_dir \]" - puts "$script_file -tclargs \[--project_name \]" - puts "$script_file -tclargs \[--help\]\n" - puts "Usage:" - puts "Name Description" - puts "-------------------------------------------------------------------------" - puts "\[--origin_dir \] Determine source file paths wrt this path. Default" - puts " origin_dir path value is \".\", otherwise, the value" - puts " that was set with the \"-paths_relative_to\" switch" - puts " when this script was generated.\n" - puts "\[--project_name \] Create project with the specified name. Default" - puts " name is the name of the project from where this" - puts " script was generated.\n" - puts "\[--help\] Print help information for this script" - puts "-------------------------------------------------------------------------\n" - exit 0 -} - -if { $::argc > 0 } { - for {set i 0} {$i < $::argc} {incr i} { - set option [string trim [lindex $::argv $i]] - switch -regexp -- $option { - "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] } - "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] } - "--help" { print_help } - default { - if { [regexp {^-} $option] } { - puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n" - return 1 - } - } - } - } -} - -# Set the directory path for the original project from where this script was exported -#Not used: set orig_proj_dir "[file normalize "$origin_dir/cva5-ip-core-test"]" - -# Create project -set project_location "$origin_dir" -create_project ${_xil_proj_name_} $project_location/${_xil_proj_name_} -part xc7z020clg484-1 - -# Set the directory path for the new project -set proj_dir [get_property directory [current_project]] - -# Set project properties -set obj [current_project] -set_property -name "board_part" -value "digilentinc.com:zedboard:part0:1.0" -objects $obj -#set_property -name "board_part_repo_paths" -value "[file normalize "$origin_dir/.Xilinx/Vivado/2019.2/xhub/board_store"]" -objects $obj -set_property -name "compxlib.activehdl_compiled_library_dir" -value "$proj_dir/${_xil_proj_name_}.cache/compile_simlib/activehdl" -objects $obj -set_property -name "compxlib.funcsim" -value "1" -objects $obj -set_property -name "compxlib.ies_compiled_library_dir" -value "$proj_dir/${_xil_proj_name_}.cache/compile_simlib/ies" -objects $obj -set_property -name "compxlib.modelsim_compiled_library_dir" -value "$proj_dir/${_xil_proj_name_}.cache/compile_simlib/modelsim" -objects $obj -set_property -name "compxlib.overwrite_libs" -value "0" -objects $obj -set_property -name "compxlib.questa_compiled_library_dir" -value "$proj_dir/${_xil_proj_name_}.cache/compile_simlib/questa" -objects $obj -set_property -name "compxlib.riviera_compiled_library_dir" -value "$proj_dir/${_xil_proj_name_}.cache/compile_simlib/riviera" -objects $obj -set_property -name "compxlib.timesim" -value "1" -objects $obj -set_property -name "compxlib.vcs_compiled_library_dir" -value "$proj_dir/${_xil_proj_name_}.cache/compile_simlib/vcs" -objects $obj -set_property -name "compxlib.xsim_compiled_library_dir" -value "" -objects $obj -set_property -name "corecontainer.enable" -value "0" -objects $obj -set_property -name "default_lib" -value "xil_defaultlib" -objects $obj -set_property -name "enable_optional_runs_sta" -value "0" -objects $obj -set_property -name "enable_vhdl_2008" -value "1" -objects $obj -set_property -name "generate_ip_upgrade_log" -value "1" -objects $obj -set_property -name "ip_cache_permissions" -value "read write" -objects $obj -set_property -name "ip_interface_inference_priority" -value "" -objects $obj -set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj -set_property -name "legacy_ip_repo_paths" -value "" -objects $obj -set_property -name "mem.enable_memory_map_generation" -value "1" -objects $obj -set_property -name "platform.board_id" -value "zedboard" -objects $obj -set_property -name "platform.default_output_type" -value "undefined" -objects $obj -set_property -name "platform.design_intent.datacenter" -value "undefined" -objects $obj -set_property -name "platform.design_intent.embedded" -value "undefined" -objects $obj -set_property -name "platform.design_intent.external_host" -value "undefined" -objects $obj -set_property -name "platform.design_intent.server_managed" -value "undefined" -objects $obj -set_property -name "platform.rom.debug_type" -value "0" -objects $obj -set_property -name "platform.rom.prom_type" -value "0" -objects $obj -set_property -name "platform.slrconstraintmode" -value "0" -objects $obj -set_property -name "project_type" -value "Default" -objects $obj -set_property -name "pr_flow" -value "0" -objects $obj -set_property -name "sim.central_dir" -value "$proj_dir/${_xil_proj_name_}.ip_user_files" -objects $obj -set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj -set_property -name "sim.use_ip_compiled_libs" -value "1" -objects $obj -set_property -name "simulator_language" -value "Mixed" -objects $obj -set_property -name "source_mgmt_mode" -value "All" -objects $obj -set_property -name "target_language" -value "Verilog" -objects $obj -set_property -name "target_simulator" -value "XSim" -objects $obj -set_property -name "tool_flow" -value "Vivado" -objects $obj -set_property -name "webtalk.activehdl_export_sim" -value "2" -objects $obj -set_property -name "webtalk.ies_export_sim" -value "2" -objects $obj -set_property -name "webtalk.modelsim_export_sim" -value "2" -objects $obj -set_property -name "webtalk.questa_export_sim" -value "2" -objects $obj -set_property -name "webtalk.riviera_export_sim" -value "2" -objects $obj -set_property -name "webtalk.vcs_export_sim" -value "2" -objects $obj -set_property -name "webtalk.xsim_export_sim" -value "2" -objects $obj -set_property -name "xpm_libraries" -value "XPM_CDC XPM_MEMORY" -objects $obj -set_property -name "xsim.array_display_limit" -value "1024" -objects $obj -set_property -name "xsim.radix" -value "hex" -objects $obj -set_property -name "xsim.time_unit" -value "ns" -objects $obj -set_property -name "xsim.trace_limit" -value "65536" -objects $obj - -# Create 'sources_1' fileset (if not found) -if {[string equal [get_filesets -quiet sources_1] ""]} { - create_fileset -srcset sources_1 -} - -# Set IP repository paths -set obj [get_filesets sources_1] -set_property "ip_repo_paths" "[file normalize "$origin_dir/../../../scripts/xilinx/local_memory_IP"] [file normalize "$origin_dir/../../../scripts/xilinx/cva5_wrapper_IP"]" $obj - -# Rebuild user ip_repo's index before adding any source files -update_ip_catalog -rebuild - -# Set 'sources_1' fileset object -set obj [get_filesets sources_1] -# Import local files from the original project -set files [list \ - [file normalize "${origin_dir}/design_1_wrapper.v" ]\ -] -set imported_files [import_files -fileset sources_1 $files] - -# Set 'sources_1' fileset file properties for remote files -# None - -# Set 'sources_1' fileset file properties for local files -set file "design_1_wrapper.v" -set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]] -set_property -name "file_type" -value "Verilog" -objects $file_obj -set_property -name "is_enabled" -value "1" -objects $file_obj -set_property -name "is_global_include" -value "0" -objects $file_obj -set_property -name "library" -value "xil_defaultlib" -objects $file_obj -set_property -name "path_mode" -value "RelativeFirst" -objects $file_obj -set_property -name "used_in" -value "synthesis implementation simulation" -objects $file_obj -set_property -name "used_in_implementation" -value "1" -objects $file_obj -set_property -name "used_in_simulation" -value "1" -objects $file_obj -set_property -name "used_in_synthesis" -value "1" -objects $file_obj - - -# Set 'sources_1' fileset properties -set obj [get_filesets sources_1] -set_property -name "design_mode" -value "RTL" -objects $obj -set_property -name "edif_extra_search_paths" -value "" -objects $obj -set_property -name "elab_link_dcps" -value "1" -objects $obj -set_property -name "elab_load_timing_constraints" -value "1" -objects $obj -set_property -name "generic" -value "" -objects $obj -set_property -name "include_dirs" -value "" -objects $obj -set_property -name "lib_map_file" -value "" -objects $obj -set_property -name "loop_count" -value "1000" -objects $obj -set_property -name "name" -value "sources_1" -objects $obj -set_property -name "top" -value "design_1_wrapper" -objects $obj -set_property -name "verilog_define" -value "" -objects $obj -set_property -name "verilog_uppercase" -value "0" -objects $obj -set_property -name "verilog_version" -value "verilog_2001" -objects $obj -set_property -name "vhdl_version" -value "vhdl_2k" -objects $obj - -# Create 'constrs_1' fileset (if not found) -if {[string equal [get_filesets -quiet constrs_1] ""]} { - create_fileset -constrset constrs_1 -} - -# Set 'constrs_1' fileset object -set obj [get_filesets constrs_1] - -# Add/Import constrs file and set constrs file properties -set file "[file normalize ${origin_dir}/zedboard_master_XDC_RevC_D_v3.xdc]" -set file_imported [import_files -fileset constrs_1 [list $file]] - - -# Set 'constrs_1' fileset properties -set obj [get_filesets constrs_1] -set_property -name "constrs_type" -value "XDC" -objects $obj -set_property -name "name" -value "constrs_1" -objects $obj -set_property -name "target_constrs_file" -value "" -objects $obj - -# Create 'sim_1' fileset (if not found) -if {[string equal [get_filesets -quiet sim_1] ""]} { - create_fileset -simset sim_1 -} - -# Set 'sim_1' fileset object -set obj [get_filesets sim_1] -# Empty (no sources present) - -# Set 'sim_1' fileset properties -set obj [get_filesets sim_1] -set_property -name "32bit" -value "0" -objects $obj -set_property -name "generic" -value "" -objects $obj -set_property -name "include_dirs" -value "" -objects $obj -set_property -name "incremental" -value "1" -objects $obj -set_property -name "name" -value "sim_1" -objects $obj -set_property -name "nl.cell" -value "" -objects $obj -set_property -name "nl.incl_unisim_models" -value "0" -objects $obj -set_property -name "nl.process_corner" -value "slow" -objects $obj -set_property -name "nl.rename_top" -value "" -objects $obj -set_property -name "nl.sdf_anno" -value "1" -objects $obj -set_property -name "nl.write_all_overrides" -value "0" -objects $obj -set_property -name "source_set" -value "sources_1" -objects $obj -set_property -name "systemc_include_dirs" -value "" -objects $obj -set_property -name "top" -value "design_1_wrapper" -objects $obj -set_property -name "top_lib" -value "xil_defaultlib" -objects $obj -set_property -name "transport_int_delay" -value "0" -objects $obj -set_property -name "transport_path_delay" -value "0" -objects $obj -set_property -name "verilog_define" -value "" -objects $obj -set_property -name "verilog_uppercase" -value "0" -objects $obj -set_property -name "xelab.dll" -value "0" -objects $obj -set_property -name "xsim.compile.tcl.pre" -value "" -objects $obj -set_property -name "xsim.compile.xsc.more_options" -value "" -objects $obj -set_property -name "xsim.compile.xvhdl.more_options" -value "" -objects $obj -set_property -name "xsim.compile.xvhdl.nosort" -value "1" -objects $obj -set_property -name "xsim.compile.xvhdl.relax" -value "1" -objects $obj -set_property -name "xsim.compile.xvlog.more_options" -value "" -objects $obj -set_property -name "xsim.compile.xvlog.nosort" -value "1" -objects $obj -set_property -name "xsim.compile.xvlog.relax" -value "1" -objects $obj -set_property -name "xsim.elaborate.debug_level" -value "typical" -objects $obj -set_property -name "xsim.elaborate.load_glbl" -value "1" -objects $obj -set_property -name "xsim.elaborate.mt_level" -value "auto" -objects $obj -set_property -name "xsim.elaborate.rangecheck" -value "0" -objects $obj -set_property -name "xsim.elaborate.relax" -value "1" -objects $obj -set_property -name "xsim.elaborate.sdf_delay" -value "sdfmax" -objects $obj -set_property -name "xsim.elaborate.snapshot" -value "" -objects $obj -set_property -name "xsim.elaborate.xelab.more_options" -value "" -objects $obj -set_property -name "xsim.elaborate.xsc.more_options" -value "" -objects $obj -set_property -name "xsim.simulate.add_positional" -value "0" -objects $obj -set_property -name "xsim.simulate.custom_tcl" -value "" -objects $obj -set_property -name "xsim.simulate.log_all_signals" -value "0" -objects $obj -set_property -name "xsim.simulate.no_quit" -value "0" -objects $obj -set_property -name "xsim.simulate.runtime" -value "1000ns" -objects $obj -set_property -name "xsim.simulate.saif" -value "" -objects $obj -set_property -name "xsim.simulate.saif_all_signals" -value "0" -objects $obj -set_property -name "xsim.simulate.saif_scope" -value "" -objects $obj -set_property -name "xsim.simulate.tcl.post" -value "" -objects $obj -set_property -name "xsim.simulate.wdb" -value "" -objects $obj -set_property -name "xsim.simulate.xsim.more_options" -value "" -objects $obj - -# Set 'utils_1' fileset object -set obj [get_filesets utils_1] -# Empty (no sources present) - -# Set 'utils_1' fileset properties -set obj [get_filesets utils_1] -set_property -name "name" -value "utils_1" -objects $obj - - -# Adding sources referenced in BDs, if not already added - - -# Proc to create BD design_1 -proc cr_bd_design_1 { parentCell } { - - # CHANGE DESIGN NAME HERE - set design_name design_1 - - common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..." - - create_bd_design $design_name - - set bCheckIPsPassed 1 - ################################################################## - # CHECK IPs - ################################################################## - set bCheckIPs 1 - if { $bCheckIPs == 1 } { - set list_check_ips "\ - xilinx.com:ip:axi_uart16550:2.0\ - user.org:user:local_mem:1.0\ - xilinx.com:ip:proc_sys_reset:5.0\ - xilinx.com:ip:processing_system7:5.5\ - user.org:user:cva5_wrapper_xilinx:1.0\ - " - - set list_ips_missing "" - common::send_msg_id "BD_TCL-006" "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ." - - foreach ip_vlnv $list_check_ips { - set ip_obj [get_ipdefs -all $ip_vlnv] - if { $ip_obj eq "" } { - lappend list_ips_missing $ip_vlnv - } - } - - if { $list_ips_missing ne "" } { - catch {common::send_msg_id "BD_TCL-115" "ERROR" "The following IPs are not found in the IP Catalog:\n $list_ips_missing\n\nResolution: Please add the repository containing the IP(s) to the project." } - set bCheckIPsPassed 0 - } - - } - - if { $bCheckIPsPassed != 1 } { - common::send_msg_id "BD_TCL-1003" "WARNING" "Will not continue with creation of design due to the error(s) above." - return 3 - } - - variable script_folder - - if { $parentCell eq "" } { - set parentCell [get_bd_cells /] - } - - # Get object for parentCell - set parentObj [get_bd_cells $parentCell] - if { $parentObj == "" } { - catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"} - return - } - - # Make sure parentObj is hier blk - set parentType [get_property TYPE $parentObj] - if { $parentType ne "hier" } { - catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be ."} - return - } - - # Save current instance; Restore later - set oldCurInst [current_bd_instance .] - - # Set parent object as current - current_bd_instance $parentObj - - - # Create interface ports - - # Create ports - set sin [ create_bd_port -dir I sin ] - set sout [ create_bd_port -dir O sout ] - - # Create instance: axi_interconnect_0, and set properties - set axi_interconnect_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_interconnect_0 ] - set_property -dict [ list \ - CONFIG.S00_HAS_DATA_FIFO {2} \ - CONFIG.STRATEGY {2} \ - ] $axi_interconnect_0 - - # Create instance: axi_uart16550_0, and set properties - set axi_uart16550_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_uart16550:2.0 axi_uart16550_0 ] - - # Create instance: local_mem_0, and set properties - set local_mem_0 [ create_bd_cell -type ip -vlnv user.org:user:local_mem:1.0 local_mem_0 ] - - # Create instance: proc_sys_reset_0, and set properties - set proc_sys_reset_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 proc_sys_reset_0 ] - - # Create instance: processing_system7_0, and set properties - set processing_system7_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 processing_system7_0 ] - set_property -dict [ list \ - CONFIG.PCW_FPGA_FCLK0_ENABLE {1} \ - CONFIG.PCW_FPGA_FCLK1_ENABLE {0} \ - CONFIG.PCW_FPGA_FCLK2_ENABLE {0} \ - CONFIG.PCW_FPGA_FCLK3_ENABLE {0} \ - ] $processing_system7_0 - - # Create instance: cva5_wrapper_xilinx_0, and set properties - set cva5_wrapper_xilinx_0 [ create_bd_cell -type ip -vlnv user.org:user:cva5_wrapper_xilinx:1.0 cva5_wrapper_xilinx_0 ] - - # Create interface connections - connect_bd_intf_net -intf_net axi_interconnect_0_M00_AXI [get_bd_intf_pins axi_interconnect_0/M00_AXI] [get_bd_intf_pins axi_uart16550_0/S_AXI] - connect_bd_intf_net -intf_net cva5_wrapper_xilinx_0_data_bram [get_bd_intf_pins local_mem_0/portB] [get_bd_intf_pins cva5_wrapper_xilinx_0/data_bram] - connect_bd_intf_net -intf_net cva5_wrapper_xilinx_0_instruction_bram [get_bd_intf_pins local_mem_0/portA] [get_bd_intf_pins cva5_wrapper_xilinx_0/instruction_bram] - connect_bd_intf_net -intf_net cva5_wrapper_xilinx_0_m_axi [get_bd_intf_pins axi_interconnect_0/S00_AXI] [get_bd_intf_pins cva5_wrapper_xilinx_0/m_axi] - - # Create port connections - connect_bd_net -net axi_uart16550_0_sout [get_bd_ports sout] [get_bd_pins axi_uart16550_0/sout] - connect_bd_net -net proc_sys_reset_0_interconnect_aresetn [get_bd_pins axi_interconnect_0/ARESETN] [get_bd_pins axi_interconnect_0/M00_ARESETN] [get_bd_pins axi_interconnect_0/M01_ARESETN] [get_bd_pins axi_interconnect_0/S00_ARESETN] [get_bd_pins proc_sys_reset_0/interconnect_aresetn] - connect_bd_net -net proc_sys_reset_0_peripheral_aresetn [get_bd_pins axi_uart16550_0/s_axi_aresetn] [get_bd_pins proc_sys_reset_0/peripheral_aresetn] - connect_bd_net -net proc_sys_reset_0_peripheral_reset [get_bd_pins local_mem_0/rst] [get_bd_pins proc_sys_reset_0/peripheral_reset] [get_bd_pins cva5_wrapper_xilinx_0/rst] - connect_bd_net -net processing_system7_0_FCLK_CLK0 [get_bd_pins axi_interconnect_0/ACLK] [get_bd_pins axi_interconnect_0/M00_ACLK] [get_bd_pins axi_interconnect_0/M01_ACLK] [get_bd_pins axi_interconnect_0/S00_ACLK] [get_bd_pins axi_uart16550_0/s_axi_aclk] [get_bd_pins local_mem_0/clk] [get_bd_pins proc_sys_reset_0/slowest_sync_clk] [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins processing_system7_0/M_AXI_GP0_ACLK] [get_bd_pins cva5_wrapper_xilinx_0/clk] - connect_bd_net -net processing_system7_0_FCLK_RESET0_N [get_bd_pins proc_sys_reset_0/ext_reset_in] [get_bd_pins processing_system7_0/FCLK_RESET0_N] - connect_bd_net -net sin_0_1 [get_bd_ports sin] [get_bd_pins axi_uart16550_0/sin] - - # Create address segments - assign_bd_address -offset 0x60000000 -range 0x00010000 -target_address_space [get_bd_addr_spaces cva5_wrapper_xilinx_0/m_axi] [get_bd_addr_segs axi_uart16550_0/S_AXI/Reg] -force - - # Perform GUI Layout - regenerate_bd_layout -layout_string { - "ActiveEmotionalView":"Default View", - "Default View_ScaleFactor":"1.44", - "Default View_TopLeft":"-397,-170", - "ExpandedHierarchyInLayout":"", - "guistr":"# # String gsaved with Nlview 7.0.21 2019-05-29 bk=1.5064 VDI=41 GEI=36 GUI=JA:9.0 TLS -# -string -flagsOSRD -preplace port sin -pg 1 -lvl 0 -x -170 -y 400 -defaultsOSRD -preplace port sout -pg 1 -lvl 5 -x 1320 -y 440 -defaultsOSRD -preplace inst processing_system7_0 -pg 1 -lvl 3 -x 730 -y 130 -defaultsOSRD -preplace inst proc_sys_reset_0 -pg 1 -lvl 2 -x 320 -y 110 -defaultsOSRD -preplace inst axi_uart16550_0 -pg 1 -lvl 1 -x 0 -y 260 -defaultsOSRD -preplace inst axi_interconnect_0 -pg 1 -lvl 4 -x 1130 -y 440 -defaultsOSRD -preplace inst local_mem_0 -pg 1 -lvl 4 -x 1130 -y 60 -defaultsOSRD -preplace inst cva5_wrapper_xilinx_0 -pg 1 -lvl 4 -x 1130 -y 220 -defaultsOSRD -preplace netloc processing_system7_0_FCLK_CLK0 1 0 4 -130 70 130 10 520 10 960 -preplace netloc processing_system7_0_FCLK_RESET0_N 1 1 3 140 0 NJ 0 930 -preplace netloc proc_sys_reset_0_peripheral_reset 1 2 2 530J 30 950 -preplace netloc proc_sys_reset_0_peripheral_aresetn 1 0 3 -150 -10 NJ -10 500 -preplace netloc sin_0_1 1 0 2 NJ 400 130 -preplace netloc axi_uart16550_0_sout 1 1 4 NJ 270 NJ 270 930J 600 1300J -preplace netloc proc_sys_reset_0_interconnect_aresetn 1 2 2 510J 20 940 -preplace netloc cva5_wrapper_xilinx_0_data_bram 1 3 2 970 -40 1300 -preplace netloc cva5_wrapper_xilinx_0_m_axi 1 3 2 980 580 1290 -preplace netloc cva5_wrapper_xilinx_0_instruction_bram 1 3 2 980 -30 1280 -preplace netloc axi_interconnect_0_M00_AXI 1 0 5 -140 590 NJ 590 NJ 590 NJ 590 1280 -levelinfo -pg 1 -170 0 320 730 1130 1320 -pagesize -pg 1 -db -bbox -sgen -240 -270 1400 640 -" -} - - # Restore current instance - current_bd_instance $oldCurInst - - validate_bd_design - save_bd_design - close_bd_design $design_name -} -# End of cr_bd_design_1() -cr_bd_design_1 "" -set_property EXCLUDE_DEBUG_LOGIC "0" [get_files design_1.bd ] -set_property GENERATE_SYNTH_CHECKPOINT "1" [get_files design_1.bd ] -set_property IS_ENABLED "1" [get_files design_1.bd ] -set_property IS_GLOBAL_INCLUDE "0" [get_files design_1.bd ] -# set_property IS_LOCKED "0" [get_files design_1.bd ] -set_property LIBRARY "xil_defaultlib" [get_files design_1.bd ] -set_property PATH_MODE "RelativeFirst" [get_files design_1.bd ] -set_property PFM_NAME "" [get_files design_1.bd ] -set_property REGISTERED_WITH_MANAGER "1" [get_files design_1.bd ] -set_property SYNTH_CHECKPOINT_MODE "Hierarchical" [get_files design_1.bd ] -set_property USED_IN "synthesis implementation simulation" [get_files design_1.bd ] -set_property USED_IN_IMPLEMENTATION "1" [get_files design_1.bd ] -set_property USED_IN_SIMULATION "1" [get_files design_1.bd ] -set_property USED_IN_SYNTHESIS "1" [get_files design_1.bd ] - -# Create 'synth_1' run (if not found) -if {[string equal [get_runs -quiet synth_1] ""]} { - create_run -name synth_1 -part xc7z020clg484-1 -flow {Vivado Synthesis 2019} -strategy "Vivado Synthesis Defaults" -report_strategy {No Reports} -constrset constrs_1 -} else { - set_property strategy "Vivado Synthesis Defaults" [get_runs synth_1] - set_property flow "Vivado Synthesis 2019" [get_runs synth_1] -} -set obj [get_runs synth_1] -set_property set_report_strategy_name 1 $obj -set_property report_strategy {Vivado Synthesis Default Reports} $obj -set_property set_report_strategy_name 0 $obj -# Create 'synth_1_synth_report_utilization_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } { - create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1 -} -set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.pblocks" -value "" -objects $obj -set_property -name "options.cells" -value "" -objects $obj -set_property -name "options.slr" -value "0" -objects $obj -set_property -name "options.packthru" -value "0" -objects $obj -set_property -name "options.hierarchical" -value "0" -objects $obj -set_property -name "options.hierarchical_depth" -value "" -objects $obj -set_property -name "options.hierarchical_percentages" -value "0" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -set obj [get_runs synth_1] -set_property -name "constrset" -value "constrs_1" -objects $obj -set_property -name "description" -value "Vivado Synthesis Defaults" -objects $obj -set_property -name "flow" -value "Vivado Synthesis 2019" -objects $obj -set_property -name "name" -value "synth_1" -objects $obj -set_property -name "needs_refresh" -value "0" -objects $obj -set_property -name "srcset" -value "sources_1" -objects $obj -set_property -name "auto_incremental_checkpoint" -value "0" -objects $obj -set_property -name "incremental_checkpoint" -value "" -objects $obj -set_property -name "rqs_files" -value "" -objects $obj -set_property -name "incremental_checkpoint.more_options" -value "" -objects $obj -set_property -name "include_in_archive" -value "1" -objects $obj -set_property -name "gen_full_bitstream" -value "1" -objects $obj -set_property -name "write_incremental_synth_checkpoint" -value "0" -objects $obj -set_property -name "strategy" -value "Vivado Synthesis Defaults" -objects $obj -set_property -name "steps.synth_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.synth_design.tcl.post" -value "" -objects $obj -set_property -name "steps.synth_design.args.flatten_hierarchy" -value "rebuilt" -objects $obj -set_property -name "steps.synth_design.args.gated_clock_conversion" -value "off" -objects $obj -set_property -name "steps.synth_design.args.bufg" -value "12" -objects $obj -set_property -name "steps.synth_design.args.fanout_limit" -value "10000" -objects $obj -set_property -name "steps.synth_design.args.directive" -value "Default" -objects $obj -set_property -name "steps.synth_design.args.retiming" -value "0" -objects $obj -set_property -name "steps.synth_design.args.fsm_extraction" -value "auto" -objects $obj -set_property -name "steps.synth_design.args.keep_equivalent_registers" -value "0" -objects $obj -set_property -name "steps.synth_design.args.resource_sharing" -value "auto" -objects $obj -set_property -name "steps.synth_design.args.control_set_opt_threshold" -value "auto" -objects $obj -set_property -name "steps.synth_design.args.no_lc" -value "0" -objects $obj -set_property -name "steps.synth_design.args.no_srlextract" -value "0" -objects $obj -set_property -name "steps.synth_design.args.shreg_min_size" -value "3" -objects $obj -set_property -name "steps.synth_design.args.max_bram" -value "-1" -objects $obj -set_property -name "steps.synth_design.args.max_uram" -value "-1" -objects $obj -set_property -name "steps.synth_design.args.max_dsp" -value "-1" -objects $obj -set_property -name "steps.synth_design.args.max_bram_cascade_height" -value "-1" -objects $obj -set_property -name "steps.synth_design.args.max_uram_cascade_height" -value "-1" -objects $obj -set_property -name "steps.synth_design.args.cascade_dsp" -value "auto" -objects $obj -set_property -name "steps.synth_design.args.assert" -value "0" -objects $obj -set_property -name "steps.synth_design.args.more options" -value "" -objects $obj - -# set the current synth run -current_run -synthesis [get_runs synth_1] - -# Create 'impl_1' run (if not found) -if {[string equal [get_runs -quiet impl_1] ""]} { - create_run -name impl_1 -part xc7z020clg484-1 -flow {Vivado Implementation 2019} -strategy "Vivado Implementation Defaults" -report_strategy {No Reports} -constrset constrs_1 -parent_run synth_1 -} else { - set_property strategy "Vivado Implementation Defaults" [get_runs impl_1] - set_property flow "Vivado Implementation 2019" [get_runs impl_1] -} -set obj [get_runs impl_1] -set_property set_report_strategy_name 1 $obj -set_property report_strategy {Vivado Implementation Default Reports} $obj -set_property set_report_strategy_name 0 $obj -# Create 'impl_1_init_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_init_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps init_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "0" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_opt_report_drc_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } { - create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.upgrade_cw" -value "0" -objects $obj -set_property -name "options.checks" -value "" -objects $obj -set_property -name "options.ruledecks" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "0" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_power_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps power_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "0" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_place_report_io_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } { - create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_place_report_utilization_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } { - create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.pblocks" -value "" -objects $obj -set_property -name "options.cells" -value "" -objects $obj -set_property -name "options.slr" -value "0" -objects $obj -set_property -name "options.packthru" -value "0" -objects $obj -set_property -name "options.hierarchical" -value "0" -objects $obj -set_property -name "options.hierarchical_depth" -value "" -objects $obj -set_property -name "options.hierarchical_percentages" -value "0" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_place_report_control_sets_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } { - create_report_config -report_name impl_1_place_report_control_sets_0 -report_type report_control_sets:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.verbose" -value "1" -objects $obj -set_property -name "options.cells" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_place_report_incremental_reuse_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } { - create_report_config -report_name impl_1_place_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.cells" -value "" -objects $obj -set_property -name "options.hierarchical" -value "0" -objects $obj -set_property -name "options.hierarchical_depth" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_place_report_incremental_reuse_1' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } { - create_report_config -report_name impl_1_place_report_incremental_reuse_1 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.cells" -value "" -objects $obj -set_property -name "options.hierarchical" -value "0" -objects $obj -set_property -name "options.hierarchical_depth" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_place_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_place_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "0" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_post_place_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_place_power_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "0" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps phys_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "0" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_drc_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } { - create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.upgrade_cw" -value "0" -objects $obj -set_property -name "options.checks" -value "" -objects $obj -set_property -name "options.ruledecks" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_methodology_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } { - create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.checks" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_power_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } { - create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.advisory" -value "0" -objects $obj -set_property -name "options.xpe" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_route_status_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } { - create_report_config -report_name impl_1_route_report_route_status_0 -report_type report_route_status:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.of_objects" -value "" -objects $obj -set_property -name "options.route_type" -value "" -objects $obj -set_property -name "options.list_all_nets" -value "0" -objects $obj -set_property -name "options.show_all" -value "0" -objects $obj -set_property -name "options.has_routing" -value "0" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_route_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "0" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_incremental_reuse_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } { - create_report_config -report_name impl_1_route_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.cells" -value "" -objects $obj -set_property -name "options.hierarchical" -value "0" -objects $obj -set_property -name "options.hierarchical_depth" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_clock_utilization_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } { - create_report_config -report_name impl_1_route_report_clock_utilization_0 -report_type report_clock_utilization:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.write_xdc" -value "0" -objects $obj -set_property -name "options.clock_roots_only" -value "0" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_route_report_bus_skew_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } { - create_report_config -report_name impl_1_route_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.slack_greater_than" -value "" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.warn_on_violation" -value "1" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_post_route_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_route_phys_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.check_timing_verbose" -value "0" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.report_unconstrained" -value "0" -objects $obj -set_property -name "options.warn_on_violation" -value "1" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.cell" -value "" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -# Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } { - create_report_config -report_name impl_1_post_route_phys_opt_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps post_route_phys_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "1" -objects $obj -set_property -name "options.delay_type" -value "" -objects $obj -set_property -name "options.setup" -value "0" -objects $obj -set_property -name "options.hold" -value "0" -objects $obj -set_property -name "options.max_paths" -value "" -objects $obj -set_property -name "options.nworst" -value "" -objects $obj -set_property -name "options.unique_pins" -value "0" -objects $obj -set_property -name "options.path_type" -value "" -objects $obj -set_property -name "options.slack_lesser_than" -value "" -objects $obj -set_property -name "options.slack_greater_than" -value "" -objects $obj -set_property -name "options.significant_digits" -value "" -objects $obj -set_property -name "options.warn_on_violation" -value "1" -objects $obj -set_property -name "options.more_options" -value "" -objects $obj - -} -set obj [get_runs impl_1] -set_property -name "constrset" -value "constrs_1" -objects $obj -set_property -name "description" -value "Default settings for Implementation." -objects $obj -set_property -name "flow" -value "Vivado Implementation 2019" -objects $obj -set_property -name "name" -value "impl_1" -objects $obj -set_property -name "needs_refresh" -value "0" -objects $obj -set_property -name "pr_configuration" -value "" -objects $obj -set_property -name "srcset" -value "sources_1" -objects $obj -set_property -name "auto_incremental_checkpoint" -value "0" -objects $obj -set_property -name "incremental_checkpoint" -value "" -objects $obj -set_property -name "rqs_files" -value "" -objects $obj -set_property -name "incremental_checkpoint.more_options" -value "" -objects $obj -set_property -name "include_in_archive" -value "1" -objects $obj -set_property -name "gen_full_bitstream" -value "1" -objects $obj -set_property -name "strategy" -value "Vivado Implementation Defaults" -objects $obj -set_property -name "steps.init_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.init_design.tcl.post" -value "" -objects $obj -set_property -name "steps.opt_design.is_enabled" -value "1" -objects $obj -set_property -name "steps.opt_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.opt_design.tcl.post" -value "" -objects $obj -set_property -name "steps.opt_design.args.verbose" -value "0" -objects $obj -set_property -name "steps.opt_design.args.directive" -value "Default" -objects $obj -set_property -name "steps.opt_design.args.more options" -value "" -objects $obj -set_property -name "steps.power_opt_design.is_enabled" -value "0" -objects $obj -set_property -name "steps.power_opt_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.power_opt_design.tcl.post" -value "" -objects $obj -set_property -name "steps.power_opt_design.args.more options" -value "" -objects $obj -set_property -name "steps.place_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.place_design.tcl.post" -value "" -objects $obj -set_property -name "steps.place_design.args.directive" -value "Default" -objects $obj -set_property -name "steps.place_design.args.more options" -value "" -objects $obj -set_property -name "steps.post_place_power_opt_design.is_enabled" -value "0" -objects $obj -set_property -name "steps.post_place_power_opt_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.post_place_power_opt_design.tcl.post" -value "" -objects $obj -set_property -name "steps.post_place_power_opt_design.args.more options" -value "" -objects $obj -set_property -name "steps.phys_opt_design.is_enabled" -value "1" -objects $obj -set_property -name "steps.phys_opt_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.phys_opt_design.tcl.post" -value "" -objects $obj -set_property -name "steps.phys_opt_design.args.directive" -value "Default" -objects $obj -set_property -name "steps.phys_opt_design.args.more options" -value "" -objects $obj -set_property -name "steps.route_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.route_design.tcl.post" -value "" -objects $obj -set_property -name "steps.route_design.args.directive" -value "Default" -objects $obj -set_property -name "steps.route_design.args.more options" -value "" -objects $obj -set_property -name "steps.post_route_phys_opt_design.is_enabled" -value "0" -objects $obj -set_property -name "steps.post_route_phys_opt_design.tcl.pre" -value "" -objects $obj -set_property -name "steps.post_route_phys_opt_design.tcl.post" -value "" -objects $obj -set_property -name "steps.post_route_phys_opt_design.args.directive" -value "Default" -objects $obj -set_property -name "steps.post_route_phys_opt_design.args.more options" -value "" -objects $obj -set_property -name "steps.write_bitstream.tcl.pre" -value "" -objects $obj -set_property -name "steps.write_bitstream.tcl.post" -value "" -objects $obj -set_property -name "steps.write_bitstream.args.raw_bitfile" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.mask_file" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.no_binary_bitfile" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.bin_file" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.logic_location_file" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.more options" -value "" -objects $obj - -# set the current impl run -current_run -implementation [get_runs impl_1] - -puts "INFO: Project created:${_xil_proj_name_}" -# Create 'drc_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "drc_1" ] ] ""]} { -create_dashboard_gadget -name {drc_1} -type drc -} -set obj [get_dashboard_gadgets [ list "drc_1" ] ] -set_property -name "active_reports" -value "" -objects $obj -set_property -name "active_reports_invalid" -value "" -objects $obj -set_property -name "active_run" -value "0" -objects $obj -set_property -name "hide_unused_data" -value "1" -objects $obj -set_property -name "incl_new_reports" -value "0" -objects $obj -set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj -set_property -name "run.step" -value "route_design" -objects $obj -set_property -name "run.type" -value "implementation" -objects $obj -set_property -name "statistics.critical_warning" -value "1" -objects $obj -set_property -name "statistics.error" -value "1" -objects $obj -set_property -name "statistics.info" -value "1" -objects $obj -set_property -name "statistics.warning" -value "1" -objects $obj -set_property -name "view.orientation" -value "Horizontal" -objects $obj -set_property -name "view.type" -value "Graph" -objects $obj - -# Create 'methodology_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "methodology_1" ] ] ""]} { -create_dashboard_gadget -name {methodology_1} -type methodology -} -set obj [get_dashboard_gadgets [ list "methodology_1" ] ] -set_property -name "active_reports" -value "" -objects $obj -set_property -name "active_reports_invalid" -value "" -objects $obj -set_property -name "active_run" -value "0" -objects $obj -set_property -name "hide_unused_data" -value "1" -objects $obj -set_property -name "incl_new_reports" -value "0" -objects $obj -set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj -set_property -name "run.step" -value "route_design" -objects $obj -set_property -name "run.type" -value "implementation" -objects $obj -set_property -name "statistics.critical_warning" -value "1" -objects $obj -set_property -name "statistics.error" -value "1" -objects $obj -set_property -name "statistics.info" -value "1" -objects $obj -set_property -name "statistics.warning" -value "1" -objects $obj -set_property -name "view.orientation" -value "Horizontal" -objects $obj -set_property -name "view.type" -value "Graph" -objects $obj - -# Create 'power_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "power_1" ] ] ""]} { -create_dashboard_gadget -name {power_1} -type power -} -set obj [get_dashboard_gadgets [ list "power_1" ] ] -set_property -name "active_reports" -value "" -objects $obj -set_property -name "active_reports_invalid" -value "" -objects $obj -set_property -name "active_run" -value "0" -objects $obj -set_property -name "hide_unused_data" -value "1" -objects $obj -set_property -name "incl_new_reports" -value "0" -objects $obj -set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj -set_property -name "run.step" -value "route_design" -objects $obj -set_property -name "run.type" -value "implementation" -objects $obj -set_property -name "statistics.bram" -value "1" -objects $obj -set_property -name "statistics.clocks" -value "1" -objects $obj -set_property -name "statistics.dsp" -value "1" -objects $obj -set_property -name "statistics.gth" -value "1" -objects $obj -set_property -name "statistics.gtp" -value "1" -objects $obj -set_property -name "statistics.gtx" -value "1" -objects $obj -set_property -name "statistics.gtz" -value "1" -objects $obj -set_property -name "statistics.io" -value "1" -objects $obj -set_property -name "statistics.logic" -value "1" -objects $obj -set_property -name "statistics.mmcm" -value "1" -objects $obj -set_property -name "statistics.pcie" -value "1" -objects $obj -set_property -name "statistics.phaser" -value "1" -objects $obj -set_property -name "statistics.pll" -value "1" -objects $obj -set_property -name "statistics.pl_static" -value "1" -objects $obj -set_property -name "statistics.ps7" -value "1" -objects $obj -set_property -name "statistics.ps" -value "1" -objects $obj -set_property -name "statistics.ps_static" -value "1" -objects $obj -set_property -name "statistics.signals" -value "1" -objects $obj -set_property -name "statistics.total_power" -value "1" -objects $obj -set_property -name "statistics.transceiver" -value "1" -objects $obj -set_property -name "statistics.xadc" -value "1" -objects $obj -set_property -name "view.orientation" -value "Horizontal" -objects $obj -set_property -name "view.type" -value "Graph" -objects $obj - -# Create 'timing_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "timing_1" ] ] ""]} { -create_dashboard_gadget -name {timing_1} -type timing -} -set obj [get_dashboard_gadgets [ list "timing_1" ] ] -set_property -name "active_reports" -value "" -objects $obj -set_property -name "active_reports_invalid" -value "" -objects $obj -set_property -name "active_run" -value "0" -objects $obj -set_property -name "hide_unused_data" -value "1" -objects $obj -set_property -name "incl_new_reports" -value "0" -objects $obj -set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj -set_property -name "run.step" -value "route_design" -objects $obj -set_property -name "run.type" -value "implementation" -objects $obj -set_property -name "statistics.ths" -value "1" -objects $obj -set_property -name "statistics.tns" -value "1" -objects $obj -set_property -name "statistics.tpws" -value "1" -objects $obj -set_property -name "statistics.whs" -value "1" -objects $obj -set_property -name "statistics.wns" -value "1" -objects $obj -set_property -name "view.orientation" -value "Horizontal" -objects $obj -set_property -name "view.type" -value "Table" -objects $obj - -# Create 'utilization_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "utilization_1" ] ] ""]} { -create_dashboard_gadget -name {utilization_1} -type utilization -} -set obj [get_dashboard_gadgets [ list "utilization_1" ] ] -set_property -name "active_reports" -value "" -objects $obj -set_property -name "active_reports_invalid" -value "" -objects $obj -set_property -name "active_run" -value "0" -objects $obj -set_property -name "hide_unused_data" -value "1" -objects $obj -set_property -name "incl_new_reports" -value "0" -objects $obj -set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj -set_property -name "run.step" -value "synth_design" -objects $obj -set_property -name "run.type" -value "synthesis" -objects $obj -set_property -name "statistics.bram" -value "1" -objects $obj -set_property -name "statistics.bufg" -value "1" -objects $obj -set_property -name "statistics.dsp" -value "1" -objects $obj -set_property -name "statistics.ff" -value "1" -objects $obj -set_property -name "statistics.gt" -value "1" -objects $obj -set_property -name "statistics.io" -value "1" -objects $obj -set_property -name "statistics.lut" -value "1" -objects $obj -set_property -name "statistics.lutram" -value "1" -objects $obj -set_property -name "statistics.mmcm" -value "1" -objects $obj -set_property -name "statistics.pcie" -value "1" -objects $obj -set_property -name "statistics.pll" -value "1" -objects $obj -set_property -name "statistics.uram" -value "1" -objects $obj -set_property -name "view.orientation" -value "Horizontal" -objects $obj -set_property -name "view.type" -value "Graph" -objects $obj - -# Create 'utilization_2' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "utilization_2" ] ] ""]} { -create_dashboard_gadget -name {utilization_2} -type utilization -} -set obj [get_dashboard_gadgets [ list "utilization_2" ] ] -set_property -name "active_reports" -value "" -objects $obj -set_property -name "active_reports_invalid" -value "" -objects $obj -set_property -name "active_run" -value "0" -objects $obj -set_property -name "hide_unused_data" -value "1" -objects $obj -set_property -name "incl_new_reports" -value "0" -objects $obj -set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj -set_property -name "run.step" -value "place_design" -objects $obj -set_property -name "run.type" -value "implementation" -objects $obj -set_property -name "statistics.bram" -value "1" -objects $obj -set_property -name "statistics.bufg" -value "1" -objects $obj -set_property -name "statistics.dsp" -value "1" -objects $obj -set_property -name "statistics.ff" -value "1" -objects $obj -set_property -name "statistics.gt" -value "1" -objects $obj -set_property -name "statistics.io" -value "1" -objects $obj -set_property -name "statistics.lut" -value "1" -objects $obj -set_property -name "statistics.lutram" -value "1" -objects $obj -set_property -name "statistics.mmcm" -value "1" -objects $obj -set_property -name "statistics.pcie" -value "1" -objects $obj -set_property -name "statistics.pll" -value "1" -objects $obj -set_property -name "statistics.uram" -value "1" -objects $obj -set_property -name "view.orientation" -value "Horizontal" -objects $obj -set_property -name "view.type" -value "Graph" -objects $obj - -move_dashboard_gadget -name {utilization_1} -row 0 -col 0 -move_dashboard_gadget -name {power_1} -row 1 -col 0 -move_dashboard_gadget -name {drc_1} -row 2 -col 0 -move_dashboard_gadget -name {timing_1} -row 0 -col 1 -move_dashboard_gadget -name {utilization_2} -row 1 -col 1 -move_dashboard_gadget -name {methodology_1} -row 2 -col 1 diff --git a/examples/zedboard/scripts/design_1_wrapper.v b/examples/zedboard/scripts/design_1_wrapper.v deleted file mode 100644 index 0d60879..0000000 --- a/examples/zedboard/scripts/design_1_wrapper.v +++ /dev/null @@ -1,24 +0,0 @@ -//Copyright 1986-2019 Xilinx, Inc. All Rights Reserved. -//-------------------------------------------------------------------------------- -//Tool Version: Vivado v.2019.2.1 (lin64) Build 2729669 Thu Dec 5 04:48:12 MST 2019 -//Date : Fri Jul 24 11:12:29 2020 -//Host : BefuddledZipper-Desktop.hitronhub.home running 64-bit unknown -//Command : generate_target design_1_wrapper.bd -//Design : design_1_wrapper -//Purpose : IP block netlist -//-------------------------------------------------------------------------------- -`timescale 1 ps / 1 ps - -module design_1_wrapper - (sin, - sout); - input sin; - output sout; - - wire sin; - wire sout; - - design_1 design_1_i - (.sin(sin), - .sout(sout)); -endmodule diff --git a/examples/zedboard/scripts/zedboard_master_XDC_RevC_D_v3.xdc b/examples/zedboard/scripts/zedboard_master_XDC_RevC_D_v3.xdc deleted file mode 100644 index 6c59dcd..0000000 --- a/examples/zedboard/scripts/zedboard_master_XDC_RevC_D_v3.xdc +++ /dev/null @@ -1,374 +0,0 @@ -# ---------------------------------------------------------------------------- -# _____ -# / # /____ \____ -# / \===\ \==/ -# /___\===\___\/ AVNET Design Resource Center -# \======/ www.em.avnet.com/drc -# \====/ -# ---------------------------------------------------------------------------- -# -# Created With Avnet UCF Generator V0.4.0 -# Date: Saturday, June 30, 2012 -# Time: 12:18:55 AM -# -# This design is the property of Avnet. Publication of this -# design is not authorized without written consent from Avnet. -# -# Please direct any questions to: -# ZedBoard.org Community Forums -# http://www.zedboard.org -# -# Disclaimer: -# Avnet, Inc. makes no warranty for the use of this code or design. -# This code is provided "As Is". Avnet, Inc assumes no responsibility for -# any errors, which may appear in this code, nor does it make a commitment -# to update the information contained herein. Avnet, Inc specifically -# disclaims any implied warranties of fitness for a particular purpose. -# Copyright(c) 2012 Avnet, Inc. -# All rights reserved. -# -# ---------------------------------------------------------------------------- -# -# Notes: -# -# 10 August 2012 -# IO standards based upon Bank 34 and Bank 35 Vcco supply options of 1.8V, -# 2.5V, or 3.3V are possible based upon the Vadj jumper (J18) settings. -# By default, Vadj is expected to be set to 1.8V but if a different -# voltage is used for a particular design, then the corresponding IO -# standard within this UCF should also be updated to reflect the actual -# Vadj jumper selection. -# -# 09 September 2012 -# Net names are not allowed to contain hyphen characters '-' since this -# is not a legal VHDL87 or Verilog character within an identifier. -# HDL net names are adjusted to contain no hyphen characters '-' but -# rather use underscore '_' characters. Comment net name with the hyphen -# characters will remain in place since these are intended to match the -# schematic net names in order to better enable schematic search. -# -# 17 April 2014 -# Pin constraint for toggle switch SW7 was corrected to M15 location. -# -# 16 April 2015 -# Corrected the way that entire banks are assigned to a particular IO -# standard so that it works with more recent versions of Vivado Design -# Suite and moved the IO standard constraints to the end of the file -# along with some better organization and notes like we do with our SOMs. -# -# 6 June 2016 -# Corrected error in signal name for package pin N19 (FMC Expansion Connector) -# -# -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Audio Codec - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN AB1 [get_ports {AC_ADR0}]; # "AC-ADR0" -#set_property PACKAGE_PIN Y5 [get_ports {AC_ADR1}]; # "AC-ADR1" -#set_property PACKAGE_PIN Y8 [get_ports {SDATA_O}]; # "AC-GPIO0" -#set_property PACKAGE_PIN AA7 [get_ports {SDATA_I}]; # "AC-GPIO1" -#set_property PACKAGE_PIN AA6 [get_ports {BCLK_O}]; # "AC-GPIO2" -#set_property PACKAGE_PIN Y6 [get_ports {LRCLK_O}]; # "AC-GPIO3" -#set_property PACKAGE_PIN AB2 [get_ports {MCLK_O}]; # "AC-MCLK" -#set_property PACKAGE_PIN AB4 [get_ports {iic_rtl_scl_io}]; # "AC-SCK" -#set_property PACKAGE_PIN AB5 [get_ports {iic_rtl_sda_io}]; # "AC-SDA" - -# ---------------------------------------------------------------------------- -# Clock Source - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN Y9 [get_ports axi_clk] - -# ---------------------------------------------------------------------------- -# JA Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN Y11 [get_ports {JA1}]; # "JA1" -#set_property PACKAGE_PIN AA8 [get_ports {JA10}]; # "JA10" -#set_property PACKAGE_PIN AA11 [get_ports {JA2}]; # "JA2" -set_property PACKAGE_PIN Y10 [get_ports sin] -set_property PACKAGE_PIN AA9 [get_ports sout] -#set_property PACKAGE_PIN AB11 [get_ports {JA7}]; # "JA7" -#set_property PACKAGE_PIN AB10 [get_ports {JA8}]; # "JA8" -#set_property PACKAGE_PIN AB9 [get_ports {JA9}]; # "JA9" - - -# ---------------------------------------------------------------------------- -# JB Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN W12 [get_ports {JB1}]; # "JB1" -#set_property PACKAGE_PIN W11 [get_ports {JB2}]; # "JB2" -#set_property PACKAGE_PIN V10 [get_ports {JB3}]; # "JB3" -#set_property PACKAGE_PIN W8 [get_ports {JB4}]; # "JB4" -#set_property PACKAGE_PIN V12 [get_ports {JB7}]; # "JB7" -#set_property PACKAGE_PIN W10 [get_ports {JB8}]; # "JB8" -#set_property PACKAGE_PIN V9 [get_ports {JB9}]; # "JB9" -#set_property PACKAGE_PIN V8 [get_ports {JB10}]; # "JB10" - -# ---------------------------------------------------------------------------- -# JC Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN AB6 [get_ports {JC1_N}]; # "JC1_N" -#set_property PACKAGE_PIN AB7 [get_ports {JC1_P}]; # "JC1_P" -#set_property PACKAGE_PIN AA4 [get_ports {JC2_N}]; # "JC2_N" -#set_property PACKAGE_PIN Y4 [get_ports {JC2_P}]; # "JC2_P" -#set_property PACKAGE_PIN T6 [get_ports {JC3_N}]; # "JC3_N" -#set_property PACKAGE_PIN R6 [get_ports {JC3_P}]; # "JC3_P" -#set_property PACKAGE_PIN U4 [get_ports {JC4_N}]; # "JC4_N" -#set_property PACKAGE_PIN T4 [get_ports {JC4_P}]; # "JC4_P" - -# ---------------------------------------------------------------------------- -# JD Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN W7 [get_ports {JD1_N}]; # "JD1_N" -#set_property PACKAGE_PIN V7 [get_ports {JD1_P}]; # "JD1_P" -#set_property PACKAGE_PIN V4 [get_ports {JD2_N}]; # "JD2_N" -#set_property PACKAGE_PIN V5 [get_ports {JD2_P}]; # "JD2_P" -#set_property PACKAGE_PIN W5 [get_ports {JD3_N}]; # "JD3_N" -#set_property PACKAGE_PIN W6 [get_ports {JD3_P}]; # "JD3_P" -#set_property PACKAGE_PIN U5 [get_ports {JD4_N}]; # "JD4_N" -#set_property PACKAGE_PIN U6 [get_ports {JD4_P}]; # "JD4_P" - -# ---------------------------------------------------------------------------- -# OLED Display - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN U10 [get_ports {OLED_DC}]; # "OLED-DC" -#set_property PACKAGE_PIN U9 [get_ports {OLED_RES}]; # "OLED-RES" -#set_property PACKAGE_PIN AB12 [get_ports {OLED_SCLK}]; # "OLED-SCLK" -#set_property PACKAGE_PIN AA12 [get_ports {OLED_SDIN}]; # "OLED-SDIN" -#set_property PACKAGE_PIN U11 [get_ports {OLED_VBAT}]; # "OLED-VBAT" -#set_property PACKAGE_PIN U12 [get_ports {OLED_VDD}]; # "OLED-VDD" - -# ---------------------------------------------------------------------------- -# HDMI Output - Bank 33 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN W18 [get_ports {HD_CLK}]; # "HD-CLK" -#set_property PACKAGE_PIN Y13 [get_ports {HD_D0}]; # "HD-D0" -#set_property PACKAGE_PIN AA13 [get_ports {HD_D1}]; # "HD-D1" -#set_property PACKAGE_PIN W13 [get_ports {HD_D10}]; # "HD-D10" -#set_property PACKAGE_PIN W15 [get_ports {HD_D11}]; # "HD-D11" -#set_property PACKAGE_PIN V15 [get_ports {HD_D12}]; # "HD-D12" -#set_property PACKAGE_PIN U17 [get_ports {HD_D13}]; # "HD-D13" -#set_property PACKAGE_PIN V14 [get_ports {HD_D14}]; # "HD-D14" -#set_property PACKAGE_PIN V13 [get_ports {HS_D15}]; # "HD-D15" -#set_property PACKAGE_PIN AA14 [get_ports {HD_D2}]; # "HD-D2" -#set_property PACKAGE_PIN Y14 [get_ports {HD_D3}]; # "HD-D3" -#set_property PACKAGE_PIN AB15 [get_ports {HD_D4}]; # "HD-D4" -#set_property PACKAGE_PIN AB16 [get_ports {HD_D5}]; # "HD-D5" -#set_property PACKAGE_PIN AA16 [get_ports {HD_D6}]; # "HD-D6" -#set_property PACKAGE_PIN AB17 [get_ports {HD_D7}]; # "HD-D7" -#set_property PACKAGE_PIN AA17 [get_ports {HD_D8}]; # "HD-D8" -#set_property PACKAGE_PIN Y15 [get_ports {HD_D9}]; # "HD-D9" -#set_property PACKAGE_PIN U16 [get_ports {HD_DE}]; # "HD-DE" -#set_property PACKAGE_PIN V17 [get_ports {HD_HSYNC}]; # "HD-HSYNC" -#set_property PACKAGE_PIN W16 [get_ports {HD_INT}]; # "HD-INT" -#set_property PACKAGE_PIN AA18 [get_ports {HD_SCL}]; # "HD-SCL" -#set_property PACKAGE_PIN Y16 [get_ports {HD_SDA}]; # "HD-SDA" -#set_property PACKAGE_PIN U15 [get_ports {HD_SPDIF}]; # "HD-SPDIF" -#set_property PACKAGE_PIN Y18 [get_ports {HD_SPDIFO}]; # "HD-SPDIFO" -#set_property PACKAGE_PIN W17 [get_ports {HD_VSYNC}]; # "HD-VSYNC" - -# ---------------------------------------------------------------------------- -# User LEDs - Bank 33 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN T22 [get_ports {LD0}]; # "LD0" -#set_property PACKAGE_PIN T21 [get_ports {LD1}]; # "LD1" -#set_property PACKAGE_PIN U22 [get_ports {LD2}]; # "LD2" -#set_property PACKAGE_PIN U21 [get_ports {LD3}]; # "LD3" -#set_property PACKAGE_PIN V22 [get_ports {LD4}]; # "LD4" -#set_property PACKAGE_PIN W22 [get_ports {LD5}]; # "LD5" -#set_property PACKAGE_PIN U19 [get_ports {LD6}]; # "LD6" -#set_property PACKAGE_PIN U14 [get_ports {LD7}]; # "LD7" - -# ---------------------------------------------------------------------------- -# VGA Output - Bank 33 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN Y21 [get_ports {VGA_B1}]; # "VGA-B1" -#set_property PACKAGE_PIN Y20 [get_ports {VGA_B2}]; # "VGA-B2" -#set_property PACKAGE_PIN AB20 [get_ports {VGA_B3}]; # "VGA-B3" -#set_property PACKAGE_PIN AB19 [get_ports {VGA_B4}]; # "VGA-B4" -#set_property PACKAGE_PIN AB22 [get_ports {VGA_G1}]; # "VGA-G1" -#set_property PACKAGE_PIN AA22 [get_ports {VGA_G2}]; # "VGA-G2" -#set_property PACKAGE_PIN AB21 [get_ports {VGA_G3}]; # "VGA-G3" -#set_property PACKAGE_PIN AA21 [get_ports {VGA_G4}]; # "VGA-G4" -#set_property PACKAGE_PIN AA19 [get_ports {VGA_HS}]; # "VGA-HS" -#set_property PACKAGE_PIN V20 [get_ports {VGA_R1}]; # "VGA-R1" -#set_property PACKAGE_PIN U20 [get_ports {VGA_R2}]; # "VGA-R2" -#set_property PACKAGE_PIN V19 [get_ports {VGA_R3}]; # "VGA-R3" -#set_property PACKAGE_PIN V18 [get_ports {VGA_R4}]; # "VGA-R4" -#set_property PACKAGE_PIN Y19 [get_ports {VGA_VS}]; # "VGA-VS" - -# ---------------------------------------------------------------------------- -# User Push Buttons - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN P16 [get_ports resetn] -#set_property PACKAGE_PIN R16 [get_ports {BTND}]; # "BTND" -#set_property PACKAGE_PIN N15 [get_ports {BTNL}]; # "BTNL" -#set_property PACKAGE_PIN R18 [get_ports {BTNR}]; # "BTNR" -#set_property PACKAGE_PIN T18 [get_ports {BTNU}]; # "BTNU" - -# ---------------------------------------------------------------------------- -# USB OTG Reset - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN L16 [get_ports {OTG_VBUSOC}]; # "OTG-VBUSOC" - -# ---------------------------------------------------------------------------- -# XADC GIO - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN H15 [get_ports {XADC_GIO0}]; # "XADC-GIO0" -#set_property PACKAGE_PIN R15 [get_ports {XADC_GIO1}]; # "XADC-GIO1" -#set_property PACKAGE_PIN K15 [get_ports {XADC_GIO2}]; # "XADC-GIO2" -#set_property PACKAGE_PIN J15 [get_ports {XADC_GIO3}]; # "XADC-GIO3" - -# ---------------------------------------------------------------------------- -# Miscellaneous - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN K16 [get_ports {PUDC_B}]; # "PUDC_B" - -## ---------------------------------------------------------------------------- -## USB OTG Reset - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN G17 [get_ports {OTG_RESETN}]; # "OTG-RESETN" - -## ---------------------------------------------------------------------------- -## User DIP Switches - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN F22 [get_ports {SW0}]; # "SW0" -#set_property PACKAGE_PIN G22 [get_ports {SW1}]; # "SW1" -#set_property PACKAGE_PIN H22 [get_ports {SW2}]; # "SW2" -#set_property PACKAGE_PIN F21 [get_ports {SW3}]; # "SW3" -#set_property PACKAGE_PIN H19 [get_ports {SW4}]; # "SW4" -#set_property PACKAGE_PIN H18 [get_ports {SW5}]; # "SW5" -#set_property PACKAGE_PIN H17 [get_ports {SW6}]; # "SW6" -#set_property PACKAGE_PIN M15 [get_ports {SW7}]; # "SW7" - -## ---------------------------------------------------------------------------- -## XADC AD Channels - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN E16 [get_ports {AD0N_R}]; # "XADC-AD0N-R" -#set_property PACKAGE_PIN F16 [get_ports {AD0P_R}]; # "XADC-AD0P-R" -#set_property PACKAGE_PIN D17 [get_ports {AD8N_N}]; # "XADC-AD8N-R" -#set_property PACKAGE_PIN D16 [get_ports {AD8P_R}]; # "XADC-AD8P-R" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 13 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN R7 [get_ports {FMC_SCL}]; # "FMC-SCL" -#set_property PACKAGE_PIN U7 [get_ports {FMC_SDA}]; # "FMC-SDA" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 33 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN AB14 [get_ports {FMC_PRSNT}]; # "FMC-PRSNT" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 34 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN L19 [get_ports {FMC_CLK0_N}]; # "FMC-CLK0_N" -#set_property PACKAGE_PIN L18 [get_ports {FMC_CLK0_P}]; # "FMC-CLK0_P" -#set_property PACKAGE_PIN M20 [get_ports {FMC_LA00_CC_N}]; # "FMC-LA00_CC_N" -#set_property PACKAGE_PIN M19 [get_ports {FMC_LA00_CC_P}]; # "FMC-LA00_CC_P" -#set_property PACKAGE_PIN N20 [get_ports {FMC_LA01_CC_N}]; # "FMC-LA01_CC_N" -#set_property PACKAGE_PIN N19 [get_ports {FMC_LA01_CC_P}]; # "FMC-LA01_CC_P" - corrected 6/6/16 GE -#set_property PACKAGE_PIN P18 [get_ports {FMC_LA02_N}]; # "FMC-LA02_N" -#set_property PACKAGE_PIN P17 [get_ports {FMC_LA02_P}]; # "FMC-LA02_P" -#set_property PACKAGE_PIN P22 [get_ports {FMC_LA03_N}]; # "FMC-LA03_N" -#set_property PACKAGE_PIN N22 [get_ports {FMC_LA03_P}]; # "FMC-LA03_P" -#set_property PACKAGE_PIN M22 [get_ports {FMC_LA04_N}]; # "FMC-LA04_N" -#set_property PACKAGE_PIN M21 [get_ports {FMC_LA04_P}]; # "FMC-LA04_P" -#set_property PACKAGE_PIN K18 [get_ports {FMC_LA05_N}]; # "FMC-LA05_N" -#set_property PACKAGE_PIN J18 [get_ports {FMC_LA05_P}]; # "FMC-LA05_P" -#set_property PACKAGE_PIN L22 [get_ports {FMC_LA06_N}]; # "FMC-LA06_N" -#set_property PACKAGE_PIN L21 [get_ports {FMC_LA06_P}]; # "FMC-LA06_P" -#set_property PACKAGE_PIN T17 [get_ports {FMC_LA07_N}]; # "FMC-LA07_N" -#set_property PACKAGE_PIN T16 [get_ports {FMC_LA07_P}]; # "FMC-LA07_P" -#set_property PACKAGE_PIN J22 [get_ports {FMC_LA08_N}]; # "FMC-LA08_N" -#set_property PACKAGE_PIN J21 [get_ports {FMC_LA08_P}]; # "FMC-LA08_P" -#set_property PACKAGE_PIN R21 [get_ports {FMC_LA09_N}]; # "FMC-LA09_N" -#set_property PACKAGE_PIN R20 [get_ports {FMC_LA09_P}]; # "FMC-LA09_P" -#set_property PACKAGE_PIN T19 [get_ports {FMC_LA10_N}]; # "FMC-LA10_N" -#set_property PACKAGE_PIN R19 [get_ports {FMC_LA10_P}]; # "FMC-LA10_P" -#set_property PACKAGE_PIN N18 [get_ports {FMC_LA11_N}]; # "FMC-LA11_N" -#set_property PACKAGE_PIN N17 [get_ports {FMC_LA11_P}]; # "FMC-LA11_P" -#set_property PACKAGE_PIN P21 [get_ports {FMC_LA12_N}]; # "FMC-LA12_N" -#set_property PACKAGE_PIN P20 [get_ports {FMC_LA12_P}]; # "FMC-LA12_P" -#set_property PACKAGE_PIN M17 [get_ports {FMC_LA13_N}]; # "FMC-LA13_N" -#set_property PACKAGE_PIN L17 [get_ports {FMC_LA13_P}]; # "FMC-LA13_P" -#set_property PACKAGE_PIN K20 [get_ports {FMC_LA14_N}]; # "FMC-LA14_N" -#set_property PACKAGE_PIN K19 [get_ports {FMC_LA14_P}]; # "FMC-LA14_P" -#set_property PACKAGE_PIN J17 [get_ports {FMC_LA15_N}]; # "FMC-LA15_N" -#set_property PACKAGE_PIN J16 [get_ports {FMC_LA15_P}]; # "FMC-LA15_P" -#set_property PACKAGE_PIN K21 [get_ports {FMC_LA16_N}]; # "FMC-LA16_N" -#set_property PACKAGE_PIN J20 [get_ports {FMC_LA16_P}]; # "FMC-LA16_P" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN C19 [get_ports {FMC_CLK1_N}]; # "FMC-CLK1_N" -#set_property PACKAGE_PIN D18 [get_ports {FMC_CLK1_P}]; # "FMC-CLK1_P" -#set_property PACKAGE_PIN B20 [get_ports {FMC_LA17_CC_N}]; # "FMC-LA17_CC_N" -#set_property PACKAGE_PIN B19 [get_ports {FMC_LA17_CC_P}]; # "FMC-LA17_CC_P" -#set_property PACKAGE_PIN C20 [get_ports {FMC_LA18_CC_N}]; # "FMC-LA18_CC_N" -#set_property PACKAGE_PIN D20 [get_ports {FMC_LA18_CC_P}]; # "FMC-LA18_CC_P" -#set_property PACKAGE_PIN G16 [get_ports {FMC_LA19_N}]; # "FMC-LA19_N" -#set_property PACKAGE_PIN G15 [get_ports {FMC_LA19_P}]; # "FMC-LA19_P" -#set_property PACKAGE_PIN G21 [get_ports {FMC_LA20_N}]; # "FMC-LA20_N" -#set_property PACKAGE_PIN G20 [get_ports {FMC_LA20_P}]; # "FMC-LA20_P" -#set_property PACKAGE_PIN E20 [get_ports {FMC_LA21_N}]; # "FMC-LA21_N" -#set_property PACKAGE_PIN E19 [get_ports {FMC_LA21_P}]; # "FMC-LA21_P" -#set_property PACKAGE_PIN F19 [get_ports {FMC_LA22_N}]; # "FMC-LA22_N" -#set_property PACKAGE_PIN G19 [get_ports {FMC_LA22_P}]; # "FMC-LA22_P" -#set_property PACKAGE_PIN D15 [get_ports {FMC_LA23_N}]; # "FMC-LA23_N" -#set_property PACKAGE_PIN E15 [get_ports {FMC_LA23_P}]; # "FMC-LA23_P" -#set_property PACKAGE_PIN A19 [get_ports {FMC_LA24_N}]; # "FMC-LA24_N" -#set_property PACKAGE_PIN A18 [get_ports {FMC_LA24_P}]; # "FMC-LA24_P" -#set_property PACKAGE_PIN C22 [get_ports {FMC_LA25_N}]; # "FMC-LA25_N" -#set_property PACKAGE_PIN D22 [get_ports {FMC_LA25_P}]; # "FMC-LA25_P" -#set_property PACKAGE_PIN E18 [get_ports {FMC_LA26_N}]; # "FMC-LA26_N" -#set_property PACKAGE_PIN F18 [get_ports {FMC_LA26_P}]; # "FMC-LA26_P" -#set_property PACKAGE_PIN D21 [get_ports {FMC_LA27_N}]; # "FMC-LA27_N" -#set_property PACKAGE_PIN E21 [get_ports {FMC_LA27_P}]; # "FMC-LA27_P" -#set_property PACKAGE_PIN A17 [get_ports {FMC_LA28_N}]; # "FMC-LA28_N" -#set_property PACKAGE_PIN A16 [get_ports {FMC_LA28_P}]; # "FMC-LA28_P" -#set_property PACKAGE_PIN C18 [get_ports {FMC_LA29_N}]; # "FMC-LA29_N" -#set_property PACKAGE_PIN C17 [get_ports {FMC_LA29_P}]; # "FMC-LA29_P" -#set_property PACKAGE_PIN B15 [get_ports {FMC_LA30_N}]; # "FMC-LA30_N" -#set_property PACKAGE_PIN C15 [get_ports {FMC_LA30_P}]; # "FMC-LA30_P" -#set_property PACKAGE_PIN B17 [get_ports {FMC_LA31_N}]; # "FMC-LA31_N" -#set_property PACKAGE_PIN B16 [get_ports {FMC_LA31_P}]; # "FMC-LA31_P" -#set_property PACKAGE_PIN A22 [get_ports {FMC_LA32_N}]; # "FMC-LA32_N" -#set_property PACKAGE_PIN A21 [get_ports {FMC_LA32_P}]; # "FMC-LA32_P" -#set_property PACKAGE_PIN B22 [get_ports {FMC_LA33_N}]; # "FMC-LA33_N" -#set_property PACKAGE_PIN B21 [get_ports {FMC_LA33_P}]; # "FMC-LA33_P" - - -# ---------------------------------------------------------------------------- -# IOSTANDARD Constraints -# -# Note that these IOSTANDARD constraints are applied to all IOs currently -# assigned within an I/O bank. If these IOSTANDARD constraints are -# evaluated prior to other PACKAGE_PIN constraints being applied, then -# the IOSTANDARD specified will likely not be applied properly to those -# pins. Therefore, bank wide IOSTANDARD constraints should be placed -# within the XDC file in a location that is evaluated AFTER all -# PACKAGE_PIN constraints within the target bank have been evaluated. -# -# Un-comment one or more of the following IOSTANDARD constraints according to -# the bank pin assignments that are required within a design. -# ---------------------------------------------------------------------------- - -# Note that the bank voltage for IO Bank 33 is fixed to 3.3V on ZedBoard. -set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 33]]; - -# Set the bank voltage for IO Bank 34 to 1.8V by default. -# set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 34]]; -# set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 34]]; -set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 34]] - -# Set the bank voltage for IO Bank 35 to 1.8V by default. -# set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 35]]; -# set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 35]]; -set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 35]]; - -# Note that the bank voltage for IO Bank 13 is fixed to 3.3V on ZedBoard. -set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 13]] diff --git a/examples/zedboard/simulator_output_example.png b/examples/zedboard/simulator_output_example.png deleted file mode 100644 index acaa437..0000000 Binary files a/examples/zedboard/simulator_output_example.png and /dev/null differ diff --git a/examples/zedboard/system.png b/examples/zedboard/system.png deleted file mode 100644 index cd1a9a8..0000000 Binary files a/examples/zedboard/system.png and /dev/null differ diff --git a/examples/zedboard/system_periperhals.tcl b/examples/zedboard/system_periperhals.tcl deleted file mode 100644 index fc180ef..0000000 --- a/examples/zedboard/system_periperhals.tcl +++ /dev/null @@ -1,331 +0,0 @@ - -################################################################ -# This is a generated script based on design: design_2 -# -# Though there are limitations about the generated script, -# the main purpose of this utility is to make learning -# IP Integrator Tcl commands easier. -################################################################ - -namespace eval _tcl { -proc get_script_folder {} { - set script_path [file normalize [info script]] - set script_folder [file dirname $script_path] - return $script_folder -} -} -variable script_folder -set script_folder [_tcl::get_script_folder] - -################################################################ -# Check if script is running in correct Vivado version. -################################################################ -set scripts_vivado_version 2017.3 -set current_vivado_version [version -short] - -if { [string first $scripts_vivado_version $current_vivado_version] == -1 } { - puts "" - catch {common::send_msg_id "BD_TCL-109" "ERROR" "This script was generated using Vivado <$scripts_vivado_version> and is being run in <$current_vivado_version> of Vivado. Please run the script in Vivado <$scripts_vivado_version> then open the design in Vivado <$current_vivado_version>. Upgrade the design by running \"Tools => Report => Report IP Status...\", then run write_bd_tcl to create an updated script."} - - return 1 -} - -################################################################ -# START -################################################################ - -# To test this script, run the following commands from Vivado Tcl console: -# source design_2_script.tcl - -# If there is no project opened, this script will create a -# project, but make sure you do not have an existing project -# <./myproj/project_1.xpr> in the current working folder. - -set list_projs [get_projects -quiet] -if { $list_projs eq "" } { - create_project project_1 myproj -part xc7z020clg484-1 - set_property BOARD_PART em.avnet.com:zed:part0:0.9 [current_project] -} - - -# CHANGE DESIGN NAME HERE -set design_name design_2 - -# If you do not already have an existing IP Integrator design open, -# you can create a design using the following command: -# create_bd_design $design_name - -# Creating design if needed -set errMsg "" -set nRet 0 - -set cur_design [current_bd_design -quiet] -set list_cells [get_bd_cells -quiet] - -if { ${design_name} eq "" } { - # USE CASES: - # 1) Design_name not set - - set errMsg "Please set the variable to a non-empty value." - set nRet 1 - -} elseif { ${cur_design} ne "" && ${list_cells} eq "" } { - # USE CASES: - # 2): Current design opened AND is empty AND names same. - # 3): Current design opened AND is empty AND names diff; design_name NOT in project. - # 4): Current design opened AND is empty AND names diff; design_name exists in project. - - if { $cur_design ne $design_name } { - common::send_msg_id "BD_TCL-001" "INFO" "Changing value of from <$design_name> to <$cur_design> since current design is empty." - set design_name [get_property NAME $cur_design] - } - common::send_msg_id "BD_TCL-002" "INFO" "Constructing design in IPI design <$cur_design>..." - -} elseif { ${cur_design} ne "" && $list_cells ne "" && $cur_design eq $design_name } { - # USE CASES: - # 5) Current design opened AND has components AND same names. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 1 -} elseif { [get_files -quiet ${design_name}.bd] ne "" } { - # USE CASES: - # 6) Current opened design, has components, but diff names, design_name exists in project. - # 7) No opened design, design_name exists in project. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 2 - -} else { - # USE CASES: - # 8) No opened design, design_name not in project. - # 9) Current opened design, has components, but diff names, design_name not in project. - - common::send_msg_id "BD_TCL-003" "INFO" "Currently there is no design <$design_name> in project, so creating one..." - - create_bd_design $design_name - - common::send_msg_id "BD_TCL-004" "INFO" "Making design <$design_name> as current_bd_design." - current_bd_design $design_name - -} - -common::send_msg_id "BD_TCL-005" "INFO" "Currently the variable is equal to \"$design_name\"." - -if { $nRet != 0 } { - catch {common::send_msg_id "BD_TCL-114" "ERROR" $errMsg} - return $nRet -} - -################################################################## -# DESIGN PROCs -################################################################## - - - -# Procedure to create entire design; Provide argument to make -# procedure reusable. If parentCell is "", will use root. -proc create_root_design { parentCell } { - - variable script_folder - - if { $parentCell eq "" } { - set parentCell [get_bd_cells /] - } - - # Get object for parentCell - set parentObj [get_bd_cells $parentCell] - if { $parentObj == "" } { - catch {common::send_msg_id "BD_TCL-100" "ERROR" "Unable to find parent cell <$parentCell>!"} - return - } - - # Make sure parentObj is hier blk - set parentType [get_property TYPE $parentObj] - if { $parentType ne "hier" } { - catch {common::send_msg_id "BD_TCL-101" "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be ."} - return - } - - # Save current instance; Restore later - set oldCurInst [current_bd_instance .] - - # Set parent object as current - current_bd_instance $parentObj - - - # Create interface ports - set axi [ create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 axi ] - set_property -dict [ list \ -CONFIG.ADDR_WIDTH {32} \ -CONFIG.ARUSER_WIDTH {0} \ -CONFIG.AWUSER_WIDTH {0} \ -CONFIG.BUSER_WIDTH {0} \ -CONFIG.DATA_WIDTH {32} \ -CONFIG.FREQ_HZ {200000000} \ -CONFIG.HAS_BRESP {1} \ -CONFIG.HAS_BURST {1} \ -CONFIG.HAS_CACHE {1} \ -CONFIG.HAS_LOCK {1} \ -CONFIG.HAS_PROT {1} \ -CONFIG.HAS_QOS {1} \ -CONFIG.HAS_REGION {0} \ -CONFIG.HAS_RRESP {1} \ -CONFIG.HAS_WSTRB {1} \ -CONFIG.ID_WIDTH {6} \ -CONFIG.MAX_BURST_LENGTH {16} \ -CONFIG.NUM_READ_OUTSTANDING {8} \ -CONFIG.NUM_READ_THREADS {1} \ -CONFIG.NUM_WRITE_OUTSTANDING {8} \ -CONFIG.NUM_WRITE_THREADS {1} \ -CONFIG.PROTOCOL {AXI3} \ -CONFIG.READ_WRITE_MODE {READ_WRITE} \ -CONFIG.RUSER_BITS_PER_BYTE {0} \ -CONFIG.RUSER_WIDTH {0} \ -CONFIG.SUPPORTS_NARROW_BURST {1} \ -CONFIG.WUSER_BITS_PER_BYTE {0} \ -CONFIG.WUSER_WIDTH {0} \ - ] $axi - set bus_axi [ create_bd_intf_port -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 bus_axi ] - set_property -dict [ list \ -CONFIG.ADDR_WIDTH {13} \ -CONFIG.ARUSER_WIDTH {0} \ -CONFIG.AWUSER_WIDTH {0} \ -CONFIG.BUSER_WIDTH {0} \ -CONFIG.DATA_WIDTH {32} \ -CONFIG.FREQ_HZ {200000000} \ -CONFIG.HAS_BRESP {1} \ -CONFIG.HAS_BURST {0} \ -CONFIG.HAS_CACHE {0} \ -CONFIG.HAS_LOCK {0} \ -CONFIG.HAS_PROT {0} \ -CONFIG.HAS_QOS {0} \ -CONFIG.HAS_REGION {0} \ -CONFIG.HAS_RRESP {1} \ -CONFIG.HAS_WSTRB {1} \ -CONFIG.ID_WIDTH {0} \ -CONFIG.MAX_BURST_LENGTH {1} \ -CONFIG.NUM_READ_OUTSTANDING {1} \ -CONFIG.NUM_READ_THREADS {1} \ -CONFIG.NUM_WRITE_OUTSTANDING {1} \ -CONFIG.NUM_WRITE_THREADS {1} \ -CONFIG.PROTOCOL {AXI4LITE} \ -CONFIG.READ_WRITE_MODE {READ_WRITE} \ -CONFIG.RUSER_BITS_PER_BYTE {0} \ -CONFIG.RUSER_WIDTH {0} \ -CONFIG.SUPPORTS_NARROW_BURST {0} \ -CONFIG.WUSER_BITS_PER_BYTE {0} \ -CONFIG.WUSER_WIDTH {0} \ - ] $bus_axi - set mem_axi [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:aximm_rtl:1.0 mem_axi ] - set_property -dict [ list \ -CONFIG.ADDR_WIDTH {32} \ -CONFIG.DATA_WIDTH {32} \ -CONFIG.FREQ_HZ {200000000} \ -CONFIG.PROTOCOL {AXI4} \ - ] $mem_axi - - # Create ports - set axi_clk [ create_bd_port -dir I -type clk axi_clk ] - set_property -dict [ list \ -CONFIG.ASSOCIATED_BUSIF {bus_axi:axi:mem_axi} \ -CONFIG.FREQ_HZ {200000000} \ - ] $axi_clk - set processor_clk [ create_bd_port -dir O processor_clk ] - set processor_reset [ create_bd_port -dir O processor_reset ] - set resetn [ create_bd_port -dir I -type rst resetn ] - set sin [ create_bd_port -dir I sin ] - set sout [ create_bd_port -dir O sout ] - - # Create instance: axi_interconnect_0, and set properties - set axi_interconnect_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 axi_interconnect_0 ] - set_property -dict [ list \ -CONFIG.NUM_MI {1} \ - ] $axi_interconnect_0 - - # Create instance: axi_uart16550_0, and set properties - set axi_uart16550_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_uart16550:2.0 axi_uart16550_0 ] - set_property -dict [ list \ -CONFIG.C_EXTERNAL_XIN_CLK_HZ {25000000} \ -CONFIG.C_S_AXI_ACLK_FREQ_HZ {200000000} \ - ] $axi_uart16550_0 - - # Need to retain value_src of defaults - set_property -dict [ list \ -CONFIG.C_EXTERNAL_XIN_CLK_HZ.VALUE_SRC {DEFAULT} \ - ] $axi_uart16550_0 - - # Create instance: microblaze_0_axi_periph, and set properties - set microblaze_0_axi_periph [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 microblaze_0_axi_periph ] - set_property -dict [ list \ -CONFIG.NUM_MI {1} \ - ] $microblaze_0_axi_periph - - # Create instance: rst_clk_wiz_1_100M, and set properties - set rst_clk_wiz_1_100M [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 rst_clk_wiz_1_100M ] - - # Create interface connections - connect_bd_intf_net -intf_net S00_AXI_1 [get_bd_intf_ports bus_axi] [get_bd_intf_pins microblaze_0_axi_periph/S00_AXI] - connect_bd_intf_net -intf_net S00_AXI_2 [get_bd_intf_ports axi] [get_bd_intf_pins axi_interconnect_0/S00_AXI] - connect_bd_intf_net -intf_net axi_interconnect_0_M00_AXI [get_bd_intf_ports mem_axi] [get_bd_intf_pins axi_interconnect_0/M00_AXI] - connect_bd_intf_net -intf_net microblaze_0_axi_periph_M00_AXI [get_bd_intf_pins axi_uart16550_0/S_AXI] [get_bd_intf_pins microblaze_0_axi_periph/M00_AXI] - - # Create port connections - connect_bd_net -net axi_uart16550_0_sout [get_bd_ports sout] [get_bd_pins axi_uart16550_0/sout] - connect_bd_net -net microblaze_0_Clk [get_bd_ports axi_clk] [get_bd_ports processor_clk] [get_bd_pins axi_interconnect_0/ACLK] [get_bd_pins axi_interconnect_0/M00_ACLK] [get_bd_pins axi_interconnect_0/S00_ACLK] [get_bd_pins axi_uart16550_0/s_axi_aclk] [get_bd_pins microblaze_0_axi_periph/ACLK] [get_bd_pins microblaze_0_axi_periph/M00_ACLK] [get_bd_pins microblaze_0_axi_periph/S00_ACLK] [get_bd_pins rst_clk_wiz_1_100M/slowest_sync_clk] - connect_bd_net -net resetn_1 [get_bd_ports resetn] [get_bd_pins rst_clk_wiz_1_100M/ext_reset_in] - connect_bd_net -net rst_clk_wiz_1_100M_interconnect_aresetn [get_bd_pins microblaze_0_axi_periph/ARESETN] [get_bd_pins rst_clk_wiz_1_100M/interconnect_aresetn] - connect_bd_net -net rst_clk_wiz_1_100M_mb_reset [get_bd_ports processor_reset] [get_bd_pins rst_clk_wiz_1_100M/mb_reset] - connect_bd_net -net rst_clk_wiz_1_100M_peripheral_aresetn [get_bd_pins axi_interconnect_0/ARESETN] [get_bd_pins axi_interconnect_0/M00_ARESETN] [get_bd_pins axi_interconnect_0/S00_ARESETN] [get_bd_pins axi_uart16550_0/s_axi_aresetn] [get_bd_pins microblaze_0_axi_periph/M00_ARESETN] [get_bd_pins microblaze_0_axi_periph/S00_ARESETN] [get_bd_pins rst_clk_wiz_1_100M/peripheral_aresetn] - connect_bd_net -net sin_1 [get_bd_ports sin] [get_bd_pins axi_uart16550_0/sin] - - # Create address segments - create_bd_addr_seg -range 0x10000000 -offset 0x80000000 [get_bd_addr_spaces axi] [get_bd_addr_segs mem_axi/Reg] SEG_M00_AXI_Reg - create_bd_addr_seg -range 0x00002000 -offset 0x00000000 [get_bd_addr_spaces bus_axi] [get_bd_addr_segs axi_uart16550_0/S_AXI/Reg] SEG_axi_uart16550_0_Reg - - # Perform GUI Layout - regenerate_bd_layout -layout_string { - guistr: "# # String gsaved with Nlview 6.6.5b 2016-09-06 bk=1.3687 VDI=39 GEI=35 GUI=JA:1.6 -# -string -flagsOSRD -preplace port bus_axi -pg 1 -y 30 -defaultsOSRD -preplace port processor_clk -pg 1 -y 500 -defaultsOSRD -preplace port sin -pg 1 -y 440 -defaultsOSRD -preplace port resetn -pg 1 -y 100 -defaultsOSRD -preplace port axi -pg 1 -y 250 -defaultsOSRD -preplace port sout -pg 1 -y 280 -defaultsOSRD -preplace port processor_reset -pg 1 -y 460 -defaultsOSRD -preplace port axi_clk -pg 1 -y 170 -defaultsOSRD -preplace port mem_axi -pg 1 -y 310 -defaultsOSRD -preplace inst microblaze_0_axi_periph -pg 1 -lvl 3 -y 90 -defaultsOSRD -preplace inst axi_interconnect_0 -pg 1 -lvl 1 -y 310 -defaultsOSRD -preplace inst rst_clk_wiz_1_100M -pg 1 -lvl 2 -y 80 -defaultsOSRD -preplace inst axi_uart16550_0 -pg 1 -lvl 2 -y 270 -defaultsOSRD -preplace netloc sin_1 1 0 3 NJ 440 NJ 440 1060 -preplace netloc microblaze_0_Clk 1 0 4 -40 -30 340J -30 1090 -30 1410 -preplace netloc axi_uart16550_0_sout 1 2 2 N 280 NJ -preplace netloc microblaze_0_axi_periph_M00_AXI 1 1 3 350 -70 NJ -70 1400 -preplace netloc resetn_1 1 0 2 -30J 60 N -preplace netloc rst_clk_wiz_1_100M_interconnect_aresetn 1 2 1 1080 -preplace netloc S00_AXI_1 1 0 3 -50J -10 NJ -10 1070J -preplace netloc rst_clk_wiz_1_100M_peripheral_aresetn 1 0 3 -30 430 350 430 1100 -preplace netloc rst_clk_wiz_1_100M_mb_reset 1 2 2 1070 460 NJ -preplace netloc axi_interconnect_0_M00_AXI 1 1 3 340J 350 NJ 350 1420J -preplace netloc S00_AXI_2 1 0 1 N -levelinfo -pg 1 -70 200 890 1260 1450 -top -110 -bot 1110 -", -} - - # Restore current instance - current_bd_instance $oldCurInst - - save_bd_design -} -# End of create_root_design() - - -################################################################## -# MAIN FLOW -################################################################## - -create_root_design "" - - diff --git a/examples/zedboard/xilinx_wiring_sample.png b/examples/zedboard/xilinx_wiring_sample.png deleted file mode 100644 index af9df5e..0000000 Binary files a/examples/zedboard/xilinx_wiring_sample.png and /dev/null differ diff --git a/examples/zedboard/zedboard.xdc b/examples/zedboard/zedboard.xdc deleted file mode 100644 index 6c59dcd..0000000 --- a/examples/zedboard/zedboard.xdc +++ /dev/null @@ -1,374 +0,0 @@ -# ---------------------------------------------------------------------------- -# _____ -# / # /____ \____ -# / \===\ \==/ -# /___\===\___\/ AVNET Design Resource Center -# \======/ www.em.avnet.com/drc -# \====/ -# ---------------------------------------------------------------------------- -# -# Created With Avnet UCF Generator V0.4.0 -# Date: Saturday, June 30, 2012 -# Time: 12:18:55 AM -# -# This design is the property of Avnet. Publication of this -# design is not authorized without written consent from Avnet. -# -# Please direct any questions to: -# ZedBoard.org Community Forums -# http://www.zedboard.org -# -# Disclaimer: -# Avnet, Inc. makes no warranty for the use of this code or design. -# This code is provided "As Is". Avnet, Inc assumes no responsibility for -# any errors, which may appear in this code, nor does it make a commitment -# to update the information contained herein. Avnet, Inc specifically -# disclaims any implied warranties of fitness for a particular purpose. -# Copyright(c) 2012 Avnet, Inc. -# All rights reserved. -# -# ---------------------------------------------------------------------------- -# -# Notes: -# -# 10 August 2012 -# IO standards based upon Bank 34 and Bank 35 Vcco supply options of 1.8V, -# 2.5V, or 3.3V are possible based upon the Vadj jumper (J18) settings. -# By default, Vadj is expected to be set to 1.8V but if a different -# voltage is used for a particular design, then the corresponding IO -# standard within this UCF should also be updated to reflect the actual -# Vadj jumper selection. -# -# 09 September 2012 -# Net names are not allowed to contain hyphen characters '-' since this -# is not a legal VHDL87 or Verilog character within an identifier. -# HDL net names are adjusted to contain no hyphen characters '-' but -# rather use underscore '_' characters. Comment net name with the hyphen -# characters will remain in place since these are intended to match the -# schematic net names in order to better enable schematic search. -# -# 17 April 2014 -# Pin constraint for toggle switch SW7 was corrected to M15 location. -# -# 16 April 2015 -# Corrected the way that entire banks are assigned to a particular IO -# standard so that it works with more recent versions of Vivado Design -# Suite and moved the IO standard constraints to the end of the file -# along with some better organization and notes like we do with our SOMs. -# -# 6 June 2016 -# Corrected error in signal name for package pin N19 (FMC Expansion Connector) -# -# -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Audio Codec - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN AB1 [get_ports {AC_ADR0}]; # "AC-ADR0" -#set_property PACKAGE_PIN Y5 [get_ports {AC_ADR1}]; # "AC-ADR1" -#set_property PACKAGE_PIN Y8 [get_ports {SDATA_O}]; # "AC-GPIO0" -#set_property PACKAGE_PIN AA7 [get_ports {SDATA_I}]; # "AC-GPIO1" -#set_property PACKAGE_PIN AA6 [get_ports {BCLK_O}]; # "AC-GPIO2" -#set_property PACKAGE_PIN Y6 [get_ports {LRCLK_O}]; # "AC-GPIO3" -#set_property PACKAGE_PIN AB2 [get_ports {MCLK_O}]; # "AC-MCLK" -#set_property PACKAGE_PIN AB4 [get_ports {iic_rtl_scl_io}]; # "AC-SCK" -#set_property PACKAGE_PIN AB5 [get_ports {iic_rtl_sda_io}]; # "AC-SDA" - -# ---------------------------------------------------------------------------- -# Clock Source - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN Y9 [get_ports axi_clk] - -# ---------------------------------------------------------------------------- -# JA Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN Y11 [get_ports {JA1}]; # "JA1" -#set_property PACKAGE_PIN AA8 [get_ports {JA10}]; # "JA10" -#set_property PACKAGE_PIN AA11 [get_ports {JA2}]; # "JA2" -set_property PACKAGE_PIN Y10 [get_ports sin] -set_property PACKAGE_PIN AA9 [get_ports sout] -#set_property PACKAGE_PIN AB11 [get_ports {JA7}]; # "JA7" -#set_property PACKAGE_PIN AB10 [get_ports {JA8}]; # "JA8" -#set_property PACKAGE_PIN AB9 [get_ports {JA9}]; # "JA9" - - -# ---------------------------------------------------------------------------- -# JB Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN W12 [get_ports {JB1}]; # "JB1" -#set_property PACKAGE_PIN W11 [get_ports {JB2}]; # "JB2" -#set_property PACKAGE_PIN V10 [get_ports {JB3}]; # "JB3" -#set_property PACKAGE_PIN W8 [get_ports {JB4}]; # "JB4" -#set_property PACKAGE_PIN V12 [get_ports {JB7}]; # "JB7" -#set_property PACKAGE_PIN W10 [get_ports {JB8}]; # "JB8" -#set_property PACKAGE_PIN V9 [get_ports {JB9}]; # "JB9" -#set_property PACKAGE_PIN V8 [get_ports {JB10}]; # "JB10" - -# ---------------------------------------------------------------------------- -# JC Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN AB6 [get_ports {JC1_N}]; # "JC1_N" -#set_property PACKAGE_PIN AB7 [get_ports {JC1_P}]; # "JC1_P" -#set_property PACKAGE_PIN AA4 [get_ports {JC2_N}]; # "JC2_N" -#set_property PACKAGE_PIN Y4 [get_ports {JC2_P}]; # "JC2_P" -#set_property PACKAGE_PIN T6 [get_ports {JC3_N}]; # "JC3_N" -#set_property PACKAGE_PIN R6 [get_ports {JC3_P}]; # "JC3_P" -#set_property PACKAGE_PIN U4 [get_ports {JC4_N}]; # "JC4_N" -#set_property PACKAGE_PIN T4 [get_ports {JC4_P}]; # "JC4_P" - -# ---------------------------------------------------------------------------- -# JD Pmod - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN W7 [get_ports {JD1_N}]; # "JD1_N" -#set_property PACKAGE_PIN V7 [get_ports {JD1_P}]; # "JD1_P" -#set_property PACKAGE_PIN V4 [get_ports {JD2_N}]; # "JD2_N" -#set_property PACKAGE_PIN V5 [get_ports {JD2_P}]; # "JD2_P" -#set_property PACKAGE_PIN W5 [get_ports {JD3_N}]; # "JD3_N" -#set_property PACKAGE_PIN W6 [get_ports {JD3_P}]; # "JD3_P" -#set_property PACKAGE_PIN U5 [get_ports {JD4_N}]; # "JD4_N" -#set_property PACKAGE_PIN U6 [get_ports {JD4_P}]; # "JD4_P" - -# ---------------------------------------------------------------------------- -# OLED Display - Bank 13 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN U10 [get_ports {OLED_DC}]; # "OLED-DC" -#set_property PACKAGE_PIN U9 [get_ports {OLED_RES}]; # "OLED-RES" -#set_property PACKAGE_PIN AB12 [get_ports {OLED_SCLK}]; # "OLED-SCLK" -#set_property PACKAGE_PIN AA12 [get_ports {OLED_SDIN}]; # "OLED-SDIN" -#set_property PACKAGE_PIN U11 [get_ports {OLED_VBAT}]; # "OLED-VBAT" -#set_property PACKAGE_PIN U12 [get_ports {OLED_VDD}]; # "OLED-VDD" - -# ---------------------------------------------------------------------------- -# HDMI Output - Bank 33 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN W18 [get_ports {HD_CLK}]; # "HD-CLK" -#set_property PACKAGE_PIN Y13 [get_ports {HD_D0}]; # "HD-D0" -#set_property PACKAGE_PIN AA13 [get_ports {HD_D1}]; # "HD-D1" -#set_property PACKAGE_PIN W13 [get_ports {HD_D10}]; # "HD-D10" -#set_property PACKAGE_PIN W15 [get_ports {HD_D11}]; # "HD-D11" -#set_property PACKAGE_PIN V15 [get_ports {HD_D12}]; # "HD-D12" -#set_property PACKAGE_PIN U17 [get_ports {HD_D13}]; # "HD-D13" -#set_property PACKAGE_PIN V14 [get_ports {HD_D14}]; # "HD-D14" -#set_property PACKAGE_PIN V13 [get_ports {HS_D15}]; # "HD-D15" -#set_property PACKAGE_PIN AA14 [get_ports {HD_D2}]; # "HD-D2" -#set_property PACKAGE_PIN Y14 [get_ports {HD_D3}]; # "HD-D3" -#set_property PACKAGE_PIN AB15 [get_ports {HD_D4}]; # "HD-D4" -#set_property PACKAGE_PIN AB16 [get_ports {HD_D5}]; # "HD-D5" -#set_property PACKAGE_PIN AA16 [get_ports {HD_D6}]; # "HD-D6" -#set_property PACKAGE_PIN AB17 [get_ports {HD_D7}]; # "HD-D7" -#set_property PACKAGE_PIN AA17 [get_ports {HD_D8}]; # "HD-D8" -#set_property PACKAGE_PIN Y15 [get_ports {HD_D9}]; # "HD-D9" -#set_property PACKAGE_PIN U16 [get_ports {HD_DE}]; # "HD-DE" -#set_property PACKAGE_PIN V17 [get_ports {HD_HSYNC}]; # "HD-HSYNC" -#set_property PACKAGE_PIN W16 [get_ports {HD_INT}]; # "HD-INT" -#set_property PACKAGE_PIN AA18 [get_ports {HD_SCL}]; # "HD-SCL" -#set_property PACKAGE_PIN Y16 [get_ports {HD_SDA}]; # "HD-SDA" -#set_property PACKAGE_PIN U15 [get_ports {HD_SPDIF}]; # "HD-SPDIF" -#set_property PACKAGE_PIN Y18 [get_ports {HD_SPDIFO}]; # "HD-SPDIFO" -#set_property PACKAGE_PIN W17 [get_ports {HD_VSYNC}]; # "HD-VSYNC" - -# ---------------------------------------------------------------------------- -# User LEDs - Bank 33 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN T22 [get_ports {LD0}]; # "LD0" -#set_property PACKAGE_PIN T21 [get_ports {LD1}]; # "LD1" -#set_property PACKAGE_PIN U22 [get_ports {LD2}]; # "LD2" -#set_property PACKAGE_PIN U21 [get_ports {LD3}]; # "LD3" -#set_property PACKAGE_PIN V22 [get_ports {LD4}]; # "LD4" -#set_property PACKAGE_PIN W22 [get_ports {LD5}]; # "LD5" -#set_property PACKAGE_PIN U19 [get_ports {LD6}]; # "LD6" -#set_property PACKAGE_PIN U14 [get_ports {LD7}]; # "LD7" - -# ---------------------------------------------------------------------------- -# VGA Output - Bank 33 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN Y21 [get_ports {VGA_B1}]; # "VGA-B1" -#set_property PACKAGE_PIN Y20 [get_ports {VGA_B2}]; # "VGA-B2" -#set_property PACKAGE_PIN AB20 [get_ports {VGA_B3}]; # "VGA-B3" -#set_property PACKAGE_PIN AB19 [get_ports {VGA_B4}]; # "VGA-B4" -#set_property PACKAGE_PIN AB22 [get_ports {VGA_G1}]; # "VGA-G1" -#set_property PACKAGE_PIN AA22 [get_ports {VGA_G2}]; # "VGA-G2" -#set_property PACKAGE_PIN AB21 [get_ports {VGA_G3}]; # "VGA-G3" -#set_property PACKAGE_PIN AA21 [get_ports {VGA_G4}]; # "VGA-G4" -#set_property PACKAGE_PIN AA19 [get_ports {VGA_HS}]; # "VGA-HS" -#set_property PACKAGE_PIN V20 [get_ports {VGA_R1}]; # "VGA-R1" -#set_property PACKAGE_PIN U20 [get_ports {VGA_R2}]; # "VGA-R2" -#set_property PACKAGE_PIN V19 [get_ports {VGA_R3}]; # "VGA-R3" -#set_property PACKAGE_PIN V18 [get_ports {VGA_R4}]; # "VGA-R4" -#set_property PACKAGE_PIN Y19 [get_ports {VGA_VS}]; # "VGA-VS" - -# ---------------------------------------------------------------------------- -# User Push Buttons - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN P16 [get_ports resetn] -#set_property PACKAGE_PIN R16 [get_ports {BTND}]; # "BTND" -#set_property PACKAGE_PIN N15 [get_ports {BTNL}]; # "BTNL" -#set_property PACKAGE_PIN R18 [get_ports {BTNR}]; # "BTNR" -#set_property PACKAGE_PIN T18 [get_ports {BTNU}]; # "BTNU" - -# ---------------------------------------------------------------------------- -# USB OTG Reset - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN L16 [get_ports {OTG_VBUSOC}]; # "OTG-VBUSOC" - -# ---------------------------------------------------------------------------- -# XADC GIO - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN H15 [get_ports {XADC_GIO0}]; # "XADC-GIO0" -#set_property PACKAGE_PIN R15 [get_ports {XADC_GIO1}]; # "XADC-GIO1" -#set_property PACKAGE_PIN K15 [get_ports {XADC_GIO2}]; # "XADC-GIO2" -#set_property PACKAGE_PIN J15 [get_ports {XADC_GIO3}]; # "XADC-GIO3" - -# ---------------------------------------------------------------------------- -# Miscellaneous - Bank 34 -# ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN K16 [get_ports {PUDC_B}]; # "PUDC_B" - -## ---------------------------------------------------------------------------- -## USB OTG Reset - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN G17 [get_ports {OTG_RESETN}]; # "OTG-RESETN" - -## ---------------------------------------------------------------------------- -## User DIP Switches - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN F22 [get_ports {SW0}]; # "SW0" -#set_property PACKAGE_PIN G22 [get_ports {SW1}]; # "SW1" -#set_property PACKAGE_PIN H22 [get_ports {SW2}]; # "SW2" -#set_property PACKAGE_PIN F21 [get_ports {SW3}]; # "SW3" -#set_property PACKAGE_PIN H19 [get_ports {SW4}]; # "SW4" -#set_property PACKAGE_PIN H18 [get_ports {SW5}]; # "SW5" -#set_property PACKAGE_PIN H17 [get_ports {SW6}]; # "SW6" -#set_property PACKAGE_PIN M15 [get_ports {SW7}]; # "SW7" - -## ---------------------------------------------------------------------------- -## XADC AD Channels - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN E16 [get_ports {AD0N_R}]; # "XADC-AD0N-R" -#set_property PACKAGE_PIN F16 [get_ports {AD0P_R}]; # "XADC-AD0P-R" -#set_property PACKAGE_PIN D17 [get_ports {AD8N_N}]; # "XADC-AD8N-R" -#set_property PACKAGE_PIN D16 [get_ports {AD8P_R}]; # "XADC-AD8P-R" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 13 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN R7 [get_ports {FMC_SCL}]; # "FMC-SCL" -#set_property PACKAGE_PIN U7 [get_ports {FMC_SDA}]; # "FMC-SDA" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 33 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN AB14 [get_ports {FMC_PRSNT}]; # "FMC-PRSNT" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 34 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN L19 [get_ports {FMC_CLK0_N}]; # "FMC-CLK0_N" -#set_property PACKAGE_PIN L18 [get_ports {FMC_CLK0_P}]; # "FMC-CLK0_P" -#set_property PACKAGE_PIN M20 [get_ports {FMC_LA00_CC_N}]; # "FMC-LA00_CC_N" -#set_property PACKAGE_PIN M19 [get_ports {FMC_LA00_CC_P}]; # "FMC-LA00_CC_P" -#set_property PACKAGE_PIN N20 [get_ports {FMC_LA01_CC_N}]; # "FMC-LA01_CC_N" -#set_property PACKAGE_PIN N19 [get_ports {FMC_LA01_CC_P}]; # "FMC-LA01_CC_P" - corrected 6/6/16 GE -#set_property PACKAGE_PIN P18 [get_ports {FMC_LA02_N}]; # "FMC-LA02_N" -#set_property PACKAGE_PIN P17 [get_ports {FMC_LA02_P}]; # "FMC-LA02_P" -#set_property PACKAGE_PIN P22 [get_ports {FMC_LA03_N}]; # "FMC-LA03_N" -#set_property PACKAGE_PIN N22 [get_ports {FMC_LA03_P}]; # "FMC-LA03_P" -#set_property PACKAGE_PIN M22 [get_ports {FMC_LA04_N}]; # "FMC-LA04_N" -#set_property PACKAGE_PIN M21 [get_ports {FMC_LA04_P}]; # "FMC-LA04_P" -#set_property PACKAGE_PIN K18 [get_ports {FMC_LA05_N}]; # "FMC-LA05_N" -#set_property PACKAGE_PIN J18 [get_ports {FMC_LA05_P}]; # "FMC-LA05_P" -#set_property PACKAGE_PIN L22 [get_ports {FMC_LA06_N}]; # "FMC-LA06_N" -#set_property PACKAGE_PIN L21 [get_ports {FMC_LA06_P}]; # "FMC-LA06_P" -#set_property PACKAGE_PIN T17 [get_ports {FMC_LA07_N}]; # "FMC-LA07_N" -#set_property PACKAGE_PIN T16 [get_ports {FMC_LA07_P}]; # "FMC-LA07_P" -#set_property PACKAGE_PIN J22 [get_ports {FMC_LA08_N}]; # "FMC-LA08_N" -#set_property PACKAGE_PIN J21 [get_ports {FMC_LA08_P}]; # "FMC-LA08_P" -#set_property PACKAGE_PIN R21 [get_ports {FMC_LA09_N}]; # "FMC-LA09_N" -#set_property PACKAGE_PIN R20 [get_ports {FMC_LA09_P}]; # "FMC-LA09_P" -#set_property PACKAGE_PIN T19 [get_ports {FMC_LA10_N}]; # "FMC-LA10_N" -#set_property PACKAGE_PIN R19 [get_ports {FMC_LA10_P}]; # "FMC-LA10_P" -#set_property PACKAGE_PIN N18 [get_ports {FMC_LA11_N}]; # "FMC-LA11_N" -#set_property PACKAGE_PIN N17 [get_ports {FMC_LA11_P}]; # "FMC-LA11_P" -#set_property PACKAGE_PIN P21 [get_ports {FMC_LA12_N}]; # "FMC-LA12_N" -#set_property PACKAGE_PIN P20 [get_ports {FMC_LA12_P}]; # "FMC-LA12_P" -#set_property PACKAGE_PIN M17 [get_ports {FMC_LA13_N}]; # "FMC-LA13_N" -#set_property PACKAGE_PIN L17 [get_ports {FMC_LA13_P}]; # "FMC-LA13_P" -#set_property PACKAGE_PIN K20 [get_ports {FMC_LA14_N}]; # "FMC-LA14_N" -#set_property PACKAGE_PIN K19 [get_ports {FMC_LA14_P}]; # "FMC-LA14_P" -#set_property PACKAGE_PIN J17 [get_ports {FMC_LA15_N}]; # "FMC-LA15_N" -#set_property PACKAGE_PIN J16 [get_ports {FMC_LA15_P}]; # "FMC-LA15_P" -#set_property PACKAGE_PIN K21 [get_ports {FMC_LA16_N}]; # "FMC-LA16_N" -#set_property PACKAGE_PIN J20 [get_ports {FMC_LA16_P}]; # "FMC-LA16_P" - -## ---------------------------------------------------------------------------- -## FMC Expansion Connector - Bank 35 -## ---------------------------------------------------------------------------- -#set_property PACKAGE_PIN C19 [get_ports {FMC_CLK1_N}]; # "FMC-CLK1_N" -#set_property PACKAGE_PIN D18 [get_ports {FMC_CLK1_P}]; # "FMC-CLK1_P" -#set_property PACKAGE_PIN B20 [get_ports {FMC_LA17_CC_N}]; # "FMC-LA17_CC_N" -#set_property PACKAGE_PIN B19 [get_ports {FMC_LA17_CC_P}]; # "FMC-LA17_CC_P" -#set_property PACKAGE_PIN C20 [get_ports {FMC_LA18_CC_N}]; # "FMC-LA18_CC_N" -#set_property PACKAGE_PIN D20 [get_ports {FMC_LA18_CC_P}]; # "FMC-LA18_CC_P" -#set_property PACKAGE_PIN G16 [get_ports {FMC_LA19_N}]; # "FMC-LA19_N" -#set_property PACKAGE_PIN G15 [get_ports {FMC_LA19_P}]; # "FMC-LA19_P" -#set_property PACKAGE_PIN G21 [get_ports {FMC_LA20_N}]; # "FMC-LA20_N" -#set_property PACKAGE_PIN G20 [get_ports {FMC_LA20_P}]; # "FMC-LA20_P" -#set_property PACKAGE_PIN E20 [get_ports {FMC_LA21_N}]; # "FMC-LA21_N" -#set_property PACKAGE_PIN E19 [get_ports {FMC_LA21_P}]; # "FMC-LA21_P" -#set_property PACKAGE_PIN F19 [get_ports {FMC_LA22_N}]; # "FMC-LA22_N" -#set_property PACKAGE_PIN G19 [get_ports {FMC_LA22_P}]; # "FMC-LA22_P" -#set_property PACKAGE_PIN D15 [get_ports {FMC_LA23_N}]; # "FMC-LA23_N" -#set_property PACKAGE_PIN E15 [get_ports {FMC_LA23_P}]; # "FMC-LA23_P" -#set_property PACKAGE_PIN A19 [get_ports {FMC_LA24_N}]; # "FMC-LA24_N" -#set_property PACKAGE_PIN A18 [get_ports {FMC_LA24_P}]; # "FMC-LA24_P" -#set_property PACKAGE_PIN C22 [get_ports {FMC_LA25_N}]; # "FMC-LA25_N" -#set_property PACKAGE_PIN D22 [get_ports {FMC_LA25_P}]; # "FMC-LA25_P" -#set_property PACKAGE_PIN E18 [get_ports {FMC_LA26_N}]; # "FMC-LA26_N" -#set_property PACKAGE_PIN F18 [get_ports {FMC_LA26_P}]; # "FMC-LA26_P" -#set_property PACKAGE_PIN D21 [get_ports {FMC_LA27_N}]; # "FMC-LA27_N" -#set_property PACKAGE_PIN E21 [get_ports {FMC_LA27_P}]; # "FMC-LA27_P" -#set_property PACKAGE_PIN A17 [get_ports {FMC_LA28_N}]; # "FMC-LA28_N" -#set_property PACKAGE_PIN A16 [get_ports {FMC_LA28_P}]; # "FMC-LA28_P" -#set_property PACKAGE_PIN C18 [get_ports {FMC_LA29_N}]; # "FMC-LA29_N" -#set_property PACKAGE_PIN C17 [get_ports {FMC_LA29_P}]; # "FMC-LA29_P" -#set_property PACKAGE_PIN B15 [get_ports {FMC_LA30_N}]; # "FMC-LA30_N" -#set_property PACKAGE_PIN C15 [get_ports {FMC_LA30_P}]; # "FMC-LA30_P" -#set_property PACKAGE_PIN B17 [get_ports {FMC_LA31_N}]; # "FMC-LA31_N" -#set_property PACKAGE_PIN B16 [get_ports {FMC_LA31_P}]; # "FMC-LA31_P" -#set_property PACKAGE_PIN A22 [get_ports {FMC_LA32_N}]; # "FMC-LA32_N" -#set_property PACKAGE_PIN A21 [get_ports {FMC_LA32_P}]; # "FMC-LA32_P" -#set_property PACKAGE_PIN B22 [get_ports {FMC_LA33_N}]; # "FMC-LA33_N" -#set_property PACKAGE_PIN B21 [get_ports {FMC_LA33_P}]; # "FMC-LA33_P" - - -# ---------------------------------------------------------------------------- -# IOSTANDARD Constraints -# -# Note that these IOSTANDARD constraints are applied to all IOs currently -# assigned within an I/O bank. If these IOSTANDARD constraints are -# evaluated prior to other PACKAGE_PIN constraints being applied, then -# the IOSTANDARD specified will likely not be applied properly to those -# pins. Therefore, bank wide IOSTANDARD constraints should be placed -# within the XDC file in a location that is evaluated AFTER all -# PACKAGE_PIN constraints within the target bank have been evaluated. -# -# Un-comment one or more of the following IOSTANDARD constraints according to -# the bank pin assignments that are required within a design. -# ---------------------------------------------------------------------------- - -# Note that the bank voltage for IO Bank 33 is fixed to 3.3V on ZedBoard. -set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 33]]; - -# Set the bank voltage for IO Bank 34 to 1.8V by default. -# set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 34]]; -# set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 34]]; -set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 34]] - -# Set the bank voltage for IO Bank 35 to 1.8V by default. -# set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 35]]; -# set_property IOSTANDARD LVCMOS25 [get_ports -of_objects [get_iobanks 35]]; -set_property IOSTANDARD LVCMOS18 [get_ports -of_objects [get_iobanks 35]]; - -# Note that the bank voltage for IO Bank 13 is fixed to 3.3V on ZedBoard. -set_property IOSTANDARD LVCMOS33 [get_ports -of_objects [get_iobanks 13]] diff --git a/l2_arbiter/axi_to_arb.sv b/l2_arbiter/axi_to_arb.sv deleted file mode 100644 index 0224fd1..0000000 --- a/l2_arbiter/axi_to_arb.sv +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright © 2017-2019 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -module axi_to_arb - - import cva5_config::*; - import riscv_types::*; - import cva5_types::*; - import l2_config_and_types::*; - - ( - input logic clk, - input logic rst, - - //read addr channel - input logic axi_arready, - output logic axi_arvalid, - output logic[31:0] axi_araddr, - output logic[7:0] axi_arlen, - output logic[2:0] axi_arsize, - output logic[1:0] axi_arburst, - output logic[2:0] axi_arprot, - output logic[3:0] axi_arcache, - output logic[5:0] axi_arid, - - //read data channel - output logic axi_rready, - input logic axi_rvalid, - input logic[31:0] axi_rdata, - input logic[1:0] axi_rresp, - input logic axi_rlast, - input logic[5:0] axi_rid, - - //write addr channel - input logic axi_awready, - output logic axi_awvalid, - output logic [31:0] axi_awaddr, - output logic [7:0] axi_awlen, - output logic [2:0] axi_awsize, - output logic [1:0] axi_awburst, - - output logic[3:0] axi_awcache, - output logic[2:0] axi_awprot, - - //write data - input logic axi_wready, - output logic axi_wvalid, - output logic [31:0] axi_wdata, - output logic [3:0] axi_wstrb, - output logic axi_wlast, - - //write response - output logic axi_bready, - input logic axi_bvalid, - input logic [1:0] axi_bresp, - - //arb interface - l2_memory_interface.slave l2 - - ); - - logic pop_request; - - logic read_modify_write; - logic read_modify_write_in_progress; - logic address_phase_complete; - logic [31:0] amo_result; - logic [31:0] amo_result_r; - logic [$clog2(EXAMPLE_CONFIG.DCACHE.LINE_W)-1:0] read_count; - logic amo_write_ready; - logic[4:0] write_reference_burst_count; - - amo_alu_inputs_t amo_alu_inputs; - - - logic write_in_progress; - logic write_transfer_complete; - - logic pop; - - logic[4:0] write_burst_count; - logic[4:0] burst_count, burst_count_r; - logic on_last_burst; - - - //AMO read modify write support **************************************************** - assign read_modify_write = l2.is_amo && (l2.amo_type_or_burst_size != AMO_LR_FN5 || l2.amo_type_or_burst_size != AMO_SC_FN5); - - always_ff @ (posedge clk) begin - if (rst) - read_modify_write_in_progress <= 0; - else if (axi_bvalid) - read_modify_write_in_progress <= 0; - else if (l2.request_valid & read_modify_write) - read_modify_write_in_progress <= 1; - end - - always_ff @ (posedge clk) begin - if (rst) - address_phase_complete <= 0; - else if (pop) - address_phase_complete <= 0; - else if (axi_arvalid & axi_arready) - address_phase_complete <= 1; - end - - //TODO: if the data cache is made non-blocking on a miss then we could capture a previous request here instead of the one we just issued - //safe under current circumstances as subsequent load won't be issued until the first one returns. - always_ff @ (posedge clk) begin - if (rst) - read_count <= 0; - else if (axi_rvalid && (axi_rid == 6'(l2.id))) - read_count <= read_count + 1; - end - - assign amo_alu_inputs.rs1_load = axi_rdata; - assign amo_alu_inputs.rs2 = l2.wr_data; - assign amo_alu_inputs.op = l2.amo_type_or_burst_size; - - amo_alu amo_unit (.*, .result(amo_result)); - - //TODO: assumption that all data caches have same line size, would have to update wrt the burst size to be safe if they have different line lengths - //also update araddr - always_ff @ (posedge clk) begin - if (axi_rvalid && (read_count == l2.addr[$clog2(EXAMPLE_CONFIG.DCACHE.LINE_W)-1:0])) - amo_result_r <= amo_result; - end - - always_ff @ (posedge clk) begin - if (rst) - amo_write_ready <= 0; - else if (pop) - amo_write_ready <= 0; - else if (l2.is_amo && axi_rvalid && read_count == l2.addr[$clog2(EXAMPLE_CONFIG.DCACHE.LINE_W)-1:0]) - amo_write_ready <= 1; - end - //End AMO - - assign burst_count = l2.amo_type_or_burst_size; - - //read constants - assign axi_arlen = 8'(burst_count); // - assign axi_arburst = 2'b01;// INCR - assign axi_rready = 1; //always ready to receive data - assign axi_arsize = 3'b010;//4 bytes - assign axi_arcache = 4'b0011; //bufferable cacheable memory - assign axi_arprot = '0; - assign axi_arid = 6'(l2.id); - - assign axi_araddr ={l2.addr, 2'b00} & {25'h1FFFFFF, ~burst_count, 2'b00}; - - assign write_reference_burst_count = read_modify_write ? 0 : burst_count; - - //write constants - assign axi_awlen = 8'(write_reference_burst_count); - assign axi_awburst = 2'b01;// INCR - assign axi_awsize = 3'b010;//4 bytes - assign axi_bready = 1; - assign axi_awcache = 4'b0011;//bufferable cacheable memory - assign axi_awprot = '0; - - assign axi_awaddr ={l2.addr, 2'b00}; - - assign axi_wdata = read_modify_write ? amo_result_r : l2.wr_data; - - assign axi_wstrb = read_modify_write ? '1 : l2.wr_data_be; - - - //Done when read request sent, or slave ack on write data - assign pop = (axi_arvalid & axi_arready & ~read_modify_write) | (on_last_burst & axi_wready); - assign l2.request_pop = pop; - - //read channel - always_ff @ (posedge clk) begin - if (rst) - axi_arvalid <= 0; - else if (axi_arvalid & axi_arready) - axi_arvalid <= 0; - else if (l2.request_valid & l2.rnw & ~address_phase_complete) - axi_arvalid <= 1; - end - - //write channel - logic write_request; - logic write_in_progress_r; - assign write_request = l2.wr_data_valid & l2.request_valid & (~l2.rnw | amo_write_ready); - assign axi_awvalid = write_request & ~write_in_progress_r; - - always_ff @ (posedge clk) begin - if (rst) - write_in_progress_r <= 0; - else if (on_last_burst & axi_wready) - write_in_progress_r <= 0; - else if (axi_awready & write_request) - write_in_progress_r <= 1; - end - assign write_in_progress = write_in_progress_r | (axi_awready & write_request); - - always_ff @ (posedge clk) begin - if (rst) - write_burst_count <= 0; - else if (on_last_burst & axi_wready) - write_burst_count <= 0; - else if (axi_wvalid & axi_wready) - write_burst_count <= write_burst_count+1; - end - - assign on_last_burst = (write_in_progress && write_reference_burst_count == write_burst_count); - - assign axi_wvalid = write_in_progress & l2.wr_data_valid; - assign axi_wlast = on_last_burst & l2.wr_data_valid; - - assign l2.wr_data_read = write_in_progress & axi_wready; - - - //read response - assign l2.rd_data = axi_rdata; - assign l2.rd_id = axi_rid[L2_ID_W-1:0]; - assign l2.rd_data_valid = axi_rvalid; - -endmodule diff --git a/l2_arbiter/l2_arbiter.sv b/l2_arbiter/l2_arbiter.sv deleted file mode 100644 index 47d2b73..0000000 --- a/l2_arbiter/l2_arbiter.sv +++ /dev/null @@ -1,312 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -module l2_arbiter - - import l2_config_and_types::*; - import riscv_types::*; - import cva5_types::*; - - ( - input logic clk, - input logic rst, - - l2_requester_interface.slave request [L2_NUM_PORTS-1:0], - l2_memory_interface.master mem - ); - - l2_arbitration_interface arb(); - - //FIFO interfaces - fifo_interface #(.DATA_TYPE(l2_request_t)) input_fifos [L2_NUM_PORTS-1:0](); - fifo_interface #(.DATA_TYPE(l2_data_request_t)) input_data_fifos [L2_NUM_PORTS-1:0](); - fifo_interface #(.DATA_TYPE(logic[29:0])) inv_response_fifos [L2_NUM_PORTS-1:0](); - fifo_interface #(.DATA_TYPE(l2_return_data_t)) returndata_fifos [L2_NUM_PORTS-1:0](); - - - fifo_interface #(.DATA_TYPE(l2_mem_request_t)) mem_addr_fifo(); - fifo_interface #(.DATA_TYPE(l2_data_request_t)) mem_data_fifo(); - - fifo_interface #(.DATA_TYPE(l2_data_attributes_t)) data_attributes(); - fifo_interface #(.DATA_TYPE(l2_mem_return_data_t)) mem_returndata_fifo(); - - l2_mem_request_t mem_addr_fifo_data_out; - l2_request_t requests_in[L2_NUM_PORTS-1:0]; - l2_data_request_t data_requests_in[L2_NUM_PORTS-1:0]; - - logic advance; - l2_request_t arb_request; - l2_mem_request_t mem_request; - - logic reserv_valid; - logic reserv_lr; - logic reserv_sc; - logic reserv_store; - l2_request_t requests [L2_NUM_PORTS-1:0]; - l2_request_t reserv_request; - logic [$clog2(L2_NUM_PORTS)-1:0] reserv_id; - logic [L2_NUM_PORTS-1:0] reserv_id_v; - - logic write_done; - logic [4:0] burst_count; - l2_data_attributes_t new_attr; - l2_data_attributes_t current_attr; - - l2_data_request_t input_data [L2_NUM_PORTS-1:0]; - - l2_mem_return_data_t mem_return_data; - l2_return_data_t return_data [L2_NUM_PORTS-1:0]; - logic [L2_NUM_PORTS-1:0] return_push; - - logic wr_clk, rd_clk; - assign wr_clk = clk; - assign rd_clk = clk; - //Implementation - //************************************ - - /************************************* - * Input Request FIFOs - *************************************/ - genvar i; - generate for (i=0; i < L2_NUM_PORTS; i++) begin : gen_requests - //Requester FIFO side - assign input_fifos[i].push = request[i].request_push; - assign input_fifos[i].potential_push = request[i].request_push; - - //Repack input attributes - assign requests_in[i].addr = request[i].addr; - assign requests_in[i].rnw = request[i].rnw; - assign requests_in[i].is_amo = request[i].is_amo; - assign requests_in[i].amo_type_or_burst_size = request[i].amo_type_or_burst_size; - assign requests_in[i].sub_id = request[i].sub_id; - assign input_fifos[i].data_in = requests_in[i]; - - assign input_fifos[i].pop = input_fifos[i].valid & arb.grantee_v[i] & ~mem_addr_fifo.full; - - assign request[i].request_full = input_fifos[i].full; - - //FIFO instantiation - cva5_fifo #(.DATA_TYPE(l2_request_t), .FIFO_DEPTH(L2_INPUT_FIFO_DEPTHS)) input_fifo (.*, .fifo(input_fifos[i])); - - //Arbiter FIFO side - assign requests[i] = input_fifos[i].data_out; - assign arb.requests[i] = input_fifos[i].valid; - end - endgenerate - - /************************************* - * Input Data FIFOs - *************************************/ - generate for (i=0; i < L2_NUM_PORTS; i++) begin : gen_input_fifos - //Requester FIFO side - assign input_data_fifos[i].push = request[i].wr_data_push; - assign input_data_fifos[i].potential_push = request[i].wr_data_push; - - assign data_requests_in[i].data = request[i].wr_data; - assign data_requests_in[i].be = request[i].wr_data_be; - assign input_data_fifos[i].data_in = data_requests_in[i]; - - assign request[i].data_full = input_data_fifos[i].full; - - //FIFO instantiation - cva5_fifo #(.DATA_TYPE(l2_data_request_t), .FIFO_DEPTH(L2_INPUT_FIFO_DEPTHS)) input_data_fifo (.*, .fifo(input_data_fifos[i])); - - //Arbiter FIFO side - assign input_data_fifos[i].pop = (data_attributes.valid && (current_attr.id == i) && ~mem_data_fifo.full); - - assign input_data[i] = input_data_fifos[i].data_out; - end - endgenerate - - - /************************************* - * Arbitration - *************************************/ - l2_round_robin rr (.*); - - assign advance = arb.grantee_valid & ~mem_addr_fifo.full; - assign arb.strobe = advance; - assign mem_addr_fifo.push = advance; - assign mem_addr_fifo.potential_push = advance; - - assign mem_addr_fifo.pop = mem.request_pop; - assign mem.request_valid = mem_addr_fifo.valid; - - assign arb_request = requests[arb.grantee_i]; - - assign mem_request.addr = arb_request.addr; - assign mem_request.rnw = arb_request.rnw; - assign mem_request.is_amo = arb_request.is_amo; - assign mem_request.amo_type_or_burst_size = arb_request.amo_type_or_burst_size; - assign mem_request.id = {arb.grantee_i, arb_request.sub_id}; - - assign mem_addr_fifo.data_in = mem_request; - - //unpack memory request attributes - assign mem_addr_fifo_data_out = mem_addr_fifo.data_out; - assign mem.addr = mem_addr_fifo_data_out.addr; - assign mem.rnw = mem_addr_fifo_data_out.rnw; - assign mem.is_amo = mem_addr_fifo_data_out.is_amo; - assign mem.amo_type_or_burst_size = mem_addr_fifo_data_out.amo_type_or_burst_size; - assign mem.id = mem_addr_fifo_data_out.id; - - cva5_fifo #(.DATA_TYPE(l2_mem_request_t), .FIFO_DEPTH(L2_MEM_ADDR_FIFO_DEPTH)) input_fifo (.*, .fifo(mem_addr_fifo)); - - - /************************************* - * Reservation Support - *************************************/ - always_ff @(posedge clk) begin - if (advance) begin - reserv_request <= requests[arb.grantee_i]; - reserv_id <= arb.grantee_i; - reserv_id_v <= arb.grantee_v; - end - end - - always_ff @(posedge clk) begin - if (rst) - reserv_valid <= 0; - else - reserv_valid <= advance; - end - - assign reserv_lr = (reserv_request.is_amo && reserv_request.amo_type_or_burst_size == AMO_LR_FN5); - assign reserv_sc = (reserv_request.is_amo && reserv_request.amo_type_or_burst_size == AMO_SC_FN5); - assign reserv_store = ~reserv_request.rnw | (reserv_request.is_amo && reserv_request.amo_type_or_burst_size != AMO_LR_FN5); - l2_reservation_logic reserv (.*, - .addr(reserv_request.addr), - .id(reserv_id), - .strobe(reserv_valid), - .lr (reserv_lr), - .sc (reserv_sc), - .store (reserv_store), - .abort_request(mem.abort_request) - ); - - //sc response - generate for (i=0; i < L2_NUM_PORTS; i++) begin : gen_sc_response - always_ff @(posedge clk) begin - if (rst) begin - request[i].con_result <= 0; - request[i].con_valid <= 0; - end - else begin - request[i].con_result <= ~mem.abort_request; - request[i].con_valid <= reserv_sc & reserv_valid & reserv_id_v[i]; - end - end - end - endgenerate - - //inv response - generate for (i=0; i < L2_NUM_PORTS; i++) begin : gen_inv_response - //Requester FIFO side - assign inv_response_fifos[i].pop = request[i].inv_ack; - assign request[i].inv_addr = inv_response_fifos[i].data_out; - assign request[i].inv_valid = inv_response_fifos[i].valid; - - //FIFO instantiation - cva5_fifo #(.DATA_TYPE(logic[29:0]), .FIFO_DEPTH(L2_INVALIDATION_FIFO_DEPTHS)) inv_response_fifo (.*, .fifo(inv_response_fifos[i])); - //Arbiter side - assign inv_response_fifos[i].push = reserv_valid & reserv_store & ~reserv_id_v[i]; - assign inv_response_fifos[i].potential_push = reserv_valid & reserv_store & ~reserv_id_v[i]; - assign inv_response_fifos[i].data_in = reserv_request.addr; - end - endgenerate - - /************************************* - * Data stage - *************************************/ - assign new_attr.id = reserv_id; - assign new_attr.burst_size = reserv_request.amo_type_or_burst_size; - assign new_attr.abort_request = mem.abort_request; - - assign data_attributes.data_in = new_attr; - assign data_attributes.push = reserv_valid & ~reserv_request.rnw & ~mem.abort_request; - assign data_attributes.potential_push = reserv_valid & ~reserv_request.rnw & ~mem.abort_request; - - cva5_fifo #(.DATA_TYPE(l2_data_attributes_t), .FIFO_DEPTH(L2_DATA_ATTRIBUTES_FIFO_DEPTH)) data_attributes_fifo (.*, .fifo(data_attributes)); - - assign data_attributes.pop = write_done; - assign current_attr = data_attributes.data_out; - - always_ff @(posedge clk) begin - if (rst) - burst_count <= 0; - else if (write_done) - burst_count <= 0; - else if (data_attributes.valid & ~mem_data_fifo.full) - burst_count <= burst_count + 1; - end - - assign write_done = data_attributes.valid & ~mem_data_fifo.full & (burst_count == current_attr.burst_size); - - cva5_fifo #(.DATA_TYPE(l2_data_request_t), .FIFO_DEPTH(L2_MEM_ADDR_FIFO_DEPTH)) mem_data (.*, .fifo(mem_data_fifo)); - - assign mem_data_fifo.push = data_attributes.valid & ~mem_data_fifo.full & ~current_attr.abort_request; - assign mem_data_fifo.potential_push = data_attributes.valid & ~mem_data_fifo.full & ~current_attr.abort_request; - - assign mem_data_fifo.data_in = input_data[current_attr.id]; - - l2_data_request_t mem_data_request; - assign mem_data_request = mem_data_fifo.data_out; - assign mem.wr_data = mem_data_request.data; - assign mem.wr_data_be = mem_data_request.be; - assign mem.wr_data_valid = mem_data_fifo.valid; - assign mem_data_fifo.pop = mem.wr_data_read; - - - /************************************* - * Read response - *************************************/ - cva5_fifo # (.DATA_TYPE(l2_mem_return_data_t), .FIFO_DEPTH(L2_MEM_ADDR_FIFO_DEPTH)) mem_returndata (.*, .fifo(mem_returndata_fifo)); - assign mem_returndata_fifo.push = mem.rd_data_valid; - assign mem_returndata_fifo.potential_push = mem.rd_data_valid; - - assign mem_returndata_fifo.data_in = {mem.rd_id, mem.rd_data}; - assign mem_return_data = mem_returndata_fifo.data_out; - assign mem_returndata_fifo.pop = mem_returndata_fifo.valid; - - always_comb begin - return_push = '0; - return_push[mem_return_data.id] = mem_returndata_fifo.valid; - end - - generate for (i=0; i < L2_NUM_PORTS; i++) begin : gen_return_data - //Requester FIFO side - assign returndata_fifos[i].pop = request[i].rd_data_ack; - assign return_data[i] = returndata_fifos[i].data_out; - assign request[i].rd_data =return_data[i].data; - assign request[i].rd_sub_id = return_data[i].sub_id; - assign request[i].rd_data_valid = returndata_fifos[i].valid; - - //FIFO instantiation - cva5_fifo #(.DATA_TYPE(l2_return_data_t), .FIFO_DEPTH(L2_READ_RETURN_FIFO_DEPTHS)) returndata_fifo (.*, .fifo(returndata_fifos[i])); - //Arbiter side - assign returndata_fifos[i].push = return_push[i]; - assign returndata_fifos[i].potential_push = return_push[i]; - assign returndata_fifos[i].data_in = {mem_return_data.sub_id, mem_return_data.data}; - end - endgenerate - -endmodule diff --git a/l2_arbiter/l2_config_and_types.sv b/l2_arbiter/l2_config_and_types.sv deleted file mode 100644 index 66c6057..0000000 --- a/l2_arbiter/l2_config_and_types.sv +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - -package l2_config_and_types; - - localparam L2_NUM_PORTS = 2; - parameter L2_SUB_ID_W = 2; //Kept as parameter, due to localparam failing with scripted IP packaging - - - //localparam int L2_INPUT_FIFO_DEPTHS [7 : 0] = '{4, 4, 4, 4, 4, 4, 4, 4}; - //localparam int L2_INVALIDATION_FIFO_DEPTHS [7 : 0] = '{4, 4, 4, 4, 4, 4, 4, 4}; - //localparam int L2_READ_RETURN_FIFO_DEPTHS [7 : 0] = '{1, 1, 1, 1, 1, 1, 1, 1};//depth 1, rd_ack will be trimmed - - localparam L2_INPUT_FIFO_DEPTHS = 16; - localparam L2_INVALIDATION_FIFO_DEPTHS = 16; - localparam L2_READ_RETURN_FIFO_DEPTHS = 1;//depth 1, rd_ack will be trimmed - - - localparam L2_MEM_ADDR_FIFO_DEPTH = 16; - - localparam L2_DATA_ATTRIBUTES_FIFO_DEPTH = 32;//Sized larger to remove need to check full status - - - - //Convenience derivative parameters - localparam L2_ID_W = $clog2(L2_NUM_PORTS) + L2_SUB_ID_W; - - - typedef struct packed{ - logic [29:0] addr; - logic rnw; - logic is_amo; - logic [4:0] amo_type_or_burst_size; - logic [L2_SUB_ID_W-1:0] sub_id; - } l2_request_t; - - typedef struct packed{ - logic [31:0] data; - logic [3:0] be; - } l2_data_request_t; - - typedef struct packed{ - logic [29:0] addr; - logic [3:0] be; - logic rnw; - logic is_amo; - logic [4:0] amo_type_or_burst_size; - logic [L2_ID_W-1:0] id; - } l2_mem_request_t; - - - typedef struct packed{ - logic [$clog2(L2_NUM_PORTS)-1:0] id; - logic [4:0] burst_size; - logic abort_request; - } l2_data_attributes_t; - - - typedef struct packed{ - logic [$clog2(L2_NUM_PORTS)-1:0] id; - logic [L2_SUB_ID_W-1:0] sub_id; - logic [31:0] data; - } l2_mem_return_data_t; - - typedef struct packed{ - logic [L2_SUB_ID_W-1:0] sub_id; - logic [31:0] data; - } l2_return_data_t; - -endpackage - - diff --git a/l2_arbiter/l2_external_interfaces.sv b/l2_arbiter/l2_external_interfaces.sv deleted file mode 100644 index a53f0f0..0000000 --- a/l2_arbiter/l2_external_interfaces.sv +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright © 2019 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -interface l2_requester_interface; - import l2_config_and_types::*; - - //l2_request_t request; - logic [29:0] addr; - logic rnw; - logic is_amo; - logic [4:0] amo_type_or_burst_size; - logic [L2_SUB_ID_W-1:0] sub_id; - - logic request_push; - logic request_full; - - logic [31:2] inv_addr; - logic inv_valid; - logic inv_ack; - - logic con_result; - logic con_valid; - - logic [31:0] wr_data; - logic [3:0] wr_data_be; - logic wr_data_push; - logic data_full; - - logic [31:0] rd_data; - logic [L2_SUB_ID_W-1:0] rd_sub_id; - logic rd_data_valid; - logic rd_data_ack; - - modport master (output addr, rnw, is_amo, amo_type_or_burst_size, sub_id, - output request_push, input request_full, - input inv_addr, inv_valid, output inv_ack, - input con_result, con_valid, - output wr_data, wr_data_be, wr_data_push, input data_full, - input rd_data, rd_sub_id, rd_data_valid, output rd_data_ack); - - modport slave (input addr, rnw, is_amo, amo_type_or_burst_size, sub_id, - input request_push, output request_full, - output inv_addr, inv_valid, input inv_ack, - output con_result, con_valid, - input wr_data, wr_data_be, wr_data_push, output data_full, - output rd_data, rd_sub_id, rd_data_valid, input rd_data_ack); - -endinterface - - -interface l2_memory_interface; - import l2_config_and_types::*; - localparam L2_ID_W = $clog2(L2_NUM_PORTS) + L2_SUB_ID_W; - - logic [29:0] addr; - logic rnw; - logic is_amo; - logic [4:0] amo_type_or_burst_size; - logic [L2_ID_W-1:0] id; - - logic request_pop; - logic request_valid; - - logic abort_request; - - logic [31:0] wr_data; - logic [3:0] wr_data_be; - logic wr_data_valid; - logic wr_data_read; - - logic [31:0] rd_data; - logic [L2_ID_W-1:0] rd_id; - logic rd_data_valid; - - modport master (output addr, rnw, is_amo, amo_type_or_burst_size, id, - output request_valid, abort_request, input request_pop, - output wr_data, wr_data_be, wr_data_valid, input wr_data_read, - input rd_data, rd_id, rd_data_valid); - - modport slave (input addr, rnw, is_amo, amo_type_or_burst_size, id, - input request_valid, abort_request, output request_pop, - input wr_data, wr_data_be, wr_data_valid, output wr_data_read, - output rd_data, rd_id, rd_data_valid); - -endinterface - diff --git a/l2_arbiter/l2_fifo.sv b/l2_arbiter/l2_fifo.sv deleted file mode 100644 index f644094..0000000 --- a/l2_arbiter/l2_fifo.sv +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -module l2_fifo #(parameter DATA_WIDTH = 32, parameter FIFO_DEPTH = 4, parameter ASYNC = 0) - ( - input logic clk, - input logic wr_clk, - input logic rd_clk, - - input logic rst, - l2_fifo_interface.structure fifo - ); - - generate if (ASYNC) begin : gen_async - - end - else - begin : gen_sync - - if (FIFO_DEPTH == 1) begin - always_ff @ (posedge clk) begin - if (rst) - fifo.valid <= 0; - else if (fifo.push) - fifo.valid <= 1; - else - fifo.valid <= 0; - end - - always_ff @ (posedge clk) begin - if (fifo.push) - fifo.data_out <= fifo.data_in; - end - end - else begin - - logic[DATA_WIDTH-1:0] lut_ram[FIFO_DEPTH-1:0]; - - logic[$clog2(FIFO_DEPTH)-1:0] write_index; - logic[$clog2(FIFO_DEPTH)-1:0] read_index; - - logic count_v [FIFO_DEPTH:0]; - //////////////////////////////////////////////////////// - //implementation - - assign fifo.data_out = lut_ram[read_index]; - - always_ff @ (posedge clk) begin - if (rst) begin - read_index <= '0; - write_index <= '0; - end - else begin - read_index <= read_index + $clog2(FIFO_DEPTH)'(fifo.pop); - write_index <= write_index + $clog2(FIFO_DEPTH)'(fifo.push); - end - end - - assign fifo.full = count_v[FIFO_DEPTH]; - assign fifo.valid = ~count_v[0]; - - always_ff @ (posedge clk) begin - if (fifo.push) - lut_ram[write_index] <= fifo.data_in; - end - - always_ff @ (posedge clk) begin - if (rst) begin - count_v[0] <= 1; - for (int i = 1; i <= FIFO_DEPTH; i++) count_v[i] <= 0; - end - else if (fifo.push & ~fifo.pop) begin - count_v[FIFO_DEPTH:1] <= count_v[FIFO_DEPTH-1:0]; - count_v[0] <= 1'b0; - end else if (~fifo.push & fifo.pop) begin - count_v[FIFO_DEPTH] <= 1'b0; - count_v[FIFO_DEPTH-1:0] <= count_v[FIFO_DEPTH:1]; - end - end - end - end - endgenerate - -endmodule diff --git a/l2_arbiter/l2_interfaces.sv b/l2_arbiter/l2_interfaces.sv deleted file mode 100644 index 01c0318..0000000 --- a/l2_arbiter/l2_interfaces.sv +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright © 2017-2019 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -interface l2_arbitration_interface; - import l2_config_and_types::*; - - logic [L2_NUM_PORTS-1:0] requests; - logic [$clog2(L2_NUM_PORTS)-1:0] grantee_i; - logic [L2_NUM_PORTS-1:0] grantee_v; - logic grantee_valid; - logic strobe; - - modport slave (input requests, strobe, output grantee_i, grantee_v , grantee_valid); - modport master (output requests, strobe, input grantee_i, grantee_v , grantee_valid); - -endinterface diff --git a/l2_arbiter/l2_reservation_logic.sv b/l2_arbiter/l2_reservation_logic.sv deleted file mode 100644 index 356af55..0000000 --- a/l2_arbiter/l2_reservation_logic.sv +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - -module l2_reservation_logic - - import l2_config_and_types::*; - - ( - input logic clk, - input logic rst, - - input logic [31:2] addr, - input logic [$clog2(L2_NUM_PORTS)-1:0] id, - input logic strobe, - - input logic lr, - input logic sc, - input logic store, //includes read-modify-write AMOs - - output logic abort_request - - ); - - logic [31:2] reservation_address [L2_NUM_PORTS-1:0]; - logic [L2_NUM_PORTS-1:0] reservation; - - logic [L2_NUM_PORTS-1:0] address_match; - logic [L2_NUM_PORTS-1:0] revoke_reservation; - - always_comb begin - for (int i = 0; i < L2_NUM_PORTS; i++) begin - address_match[i] = (reservation_address[i] == addr); - revoke_reservation[i] = sc | (store & address_match[i]); - end - end - - always_ff @(posedge clk) begin - for (int i = 0; i < L2_NUM_PORTS; i++) begin - if (rst) - reservation[i] <= 0; - else if (strobe) begin - if (revoke_reservation[i]) - reservation[i] <= 0; - else if (lr) - reservation[i] <= 1; - end - end - end - - always_ff @(posedge clk) begin - if (strobe & lr) - reservation_address[id] <= addr; - end - - assign abort_request = sc && (~reservation[id] || (reservation[id] && ~address_match[id])); - - -endmodule - - diff --git a/l2_arbiter/l2_round_robin.sv b/l2_arbiter/l2_round_robin.sv deleted file mode 100644 index f3c562d..0000000 --- a/l2_arbiter/l2_round_robin.sv +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright © 2017 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - -module l2_round_robin - - import l2_config_and_types::*; - - ( - input logic clk, - input logic rst, - l2_arbitration_interface.slave arb - ); - - logic [$clog2(L2_NUM_PORTS)-1:0] state; - logic[$clog2(L2_NUM_PORTS)-1:0] muxes [L2_NUM_PORTS-1:0]; - - generate if(L2_NUM_PORTS == 1) begin : gen_width_one - assign arb.grantee_valid = arb.requests[0]; - assign arb.grantee_v = arb.requests; - assign arb.grantee_i = 0; - end else begin : gen_width_2plus - //Lowest priority to current state - always_ff @(posedge clk) begin - if (rst) - state <= 0; - else if (arb.strobe) - state <= arb.grantee_i; - end - - //ex: state 0, highest priority to L2_NUM_PORTS-1 - always_comb begin - for (int i = 0; i < L2_NUM_PORTS; i++) begin - muxes[i] = $clog2(L2_NUM_PORTS)'(i); - for (int j = 0; j < L2_NUM_PORTS; j++) begin - if (arb.requests[(i + j) % L2_NUM_PORTS]) - muxes[i] = $clog2(L2_NUM_PORTS)'((i + j) % L2_NUM_PORTS); - end - end - end - - //Select mux output based on current state - assign arb.grantee_i = muxes[state]; - - //Integer to one-hot - assign arb.grantee_v = 1 << arb.grantee_i; - - //any valid request - assign arb.grantee_valid = |arb.requests; - - end - endgenerate - -endmodule - - diff --git a/local_memory/local_mem.sv b/local_memory/local_mem.sv deleted file mode 100644 index 5bb7bc6..0000000 --- a/local_memory/local_mem.sv +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright © 2018 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - -module local_mem - #( - parameter RAM_SIZE = 64, - parameter preload_file = "", - parameter USE_PRELOAD_FILE = 0 - ) - ( - input logic clk, - input logic rst, - local_memory_interface.slave portA, - local_memory_interface.slave portB - ); - - localparam LINES = (RAM_SIZE/4)*1024; //RAM width is 32-bits, so for RAM_SIZE in KB, divide by 4 and multiply by 1024. - - byte_en_bram #(LINES, preload_file, USE_PRELOAD_FILE) inst_data_ram ( - .clk(clk), - .addr_a(portA.addr[$clog2(LINES)- 1:0]), - .en_a(portA.en), - .be_a(portA.be), - .data_in_a(portA.data_in), - .data_out_a(portA.data_out), - - .addr_b(portB.addr[$clog2(LINES)- 1:0]), - .en_b(portB.en), - .be_b(portB.be), - .data_in_b(portB.data_in), - .data_out_b(portB.data_out) - ); - -endmodule diff --git a/local_memory/local_memory_interface.sv b/local_memory/local_memory_interface.sv deleted file mode 100644 index bd34863..0000000 --- a/local_memory/local_memory_interface.sv +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright © 2018 Eric Matthews, Lesley Shannon - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Initial code developed under the supervision of Dr. Lesley Shannon, - * Reconfigurable Computing Lab, Simon Fraser University. - * - * Author(s): - * Eric Matthews - */ - - -interface local_memory_interface; - logic[29:0] addr; - logic en; - logic[3:0] be; - logic[31:0] data_in; - logic[31:0] data_out; - - modport slave (input addr, en, be, data_in, output data_out); - modport master (output addr, en, be, data_in, input data_out); - -endinterface diff --git a/scripts/xilinx/cva5_wrapper_IP.tcl b/scripts/xilinx/cva5_wrapper_IP.tcl deleted file mode 100644 index adbafca..0000000 --- a/scripts/xilinx/cva5_wrapper_IP.tcl +++ /dev/null @@ -1,267 +0,0 @@ -#***************************************************************************************** -# Vivado (TM) v2018.3 (64-bit) -# -# tmp_edit_project.tcl: Tcl script for re-creating project 'tmp_edit_project' -# -# Generated by Vivado on Thu Dec 20 14:43:20 PST 2018 -# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 -# -# This file contains the Vivado Tcl commands for re-creating the project to the state* -# when this script was generated. In order to re-create the project, please source this -# file in the Vivado Tcl Shell. -# -# * Note that the runs in the created project will be configured the same way as the -# original project, however they will not be launched automatically. To regenerate the -# run results please launch the synthesis/implementation runs as needed. -# -#***************************************************************************************** - -# Set the reference directory for source file relative paths (by default the value is script directory path) -#set origin_dir [ file dirname [ file normalize [ info script ] ] ] -set origin_dir [file dirname [info script]] -puts $origin_dir - -# Use origin directory path location variable, if specified in the tcl shell -if { [info exists ::origin_dir_loc] } { - set origin_dir $::origin_dir_loc -} - -# Set the project name -set _xil_proj_name_ "cva5_wrapper_IP" - -# Use project name variable, if specified in the tcl shell -if { [info exists ::user_project_name] } { - set _xil_proj_name_ $::user_project_name -} - -variable script_file -set script_file "cva5_wrapper_IP.tcl" - -# Help information for this script -proc print_help {} { - variable script_file - puts "\nDescription:" - puts "Recreate a Vivado project from this script. The created project will be" - puts "functionally equivalent to the original project for which this script was" - puts "generated. The script contains commands for creating a project, filesets," - puts "runs, adding/importing sources and setting properties on various objects.\n" - puts "Syntax:" - puts "$script_file" - puts "$script_file -tclargs \[--origin_dir \]" - puts "$script_file -tclargs \[--project_name \]" - puts "$script_file -tclargs \[--help\]\n" - puts "Usage:" - puts "Name Description" - puts "-------------------------------------------------------------------------" - puts "\[--origin_dir \] Determine source file paths wrt this path. Default" - puts " origin_dir path value is \".\", otherwise, the value" - puts " that was set with the \"-paths_relative_to\" switch" - puts " when this script was generated.\n" - puts "\[--project_name \] Create project with the specified name. Default" - puts " name is the name of the project from where this" - puts " script was generated.\n" - puts "\[--help\] Print help information for this script" - puts "-------------------------------------------------------------------------\n" - exit 0 -} - -if { $::argc > 0 } { - for {set i 0} {$i < $::argc} {incr i} { - set option [string trim [lindex $::argv $i]] - switch -regexp -- $option { - "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] } - "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] } - "--help" { print_help } - default { - if { [regexp {^-} $option] } { - puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n" - return 1 - } - } - } - } -} - -# Set the directory path for the original project from where this script was exported -#This is where the IP project gets stored ? -set orig_proj_dir "[file normalize "$origin_dir/"]" - -# Create project -create_project ${_xil_proj_name_} $origin_dir/${_xil_proj_name_} -part xc7z020clg484-1 - -# Set the directory path for the new project -set proj_dir [get_property directory [current_project]] - -# Reconstruct message rules -# None - -# Set project properties -set obj [current_project] -set_property -name "board_part" -value "digilentinc.com:zedboard:part0:1.0" -objects $obj -set_property -name "default_lib" -value "xil_defaultlib" -objects $obj -set_property -name "ip_cache_permissions" -value "read write" -objects $obj -set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj -set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj -set_property -name "simulator_language" -value "Mixed" -objects $obj -set_property -name "target_language" -value "Verilog" -objects $obj - -# Create 'sources_1' fileset (if not found) -if {[string equal [get_filesets -quiet sources_1] ""]} { - create_fileset -srcset sources_1 -} - -#import all sources from cva5 repo directory -#Zavier: Eric says we only want the wrapper, and whatever type/interface file we need at first. -#The reasoning is: less files at initial package, less worry -#import_files -fileset [get_filesets sources_1] $origin_dir/core -#import_files -fileset [get_filesets sources_1] $origin_dir/l2_arbiter -#import_files -fileset [get_filesets sources_1] $origin_dir/local_memory - -import_files -norecurse $origin_dir/../../core/common_components/vendor_support/xilinx/cva5_wrapper_xilinx.sv -force -import_files -norecurse $origin_dir/../../l2_arbiter/l2_external_interfaces.sv -force -import_files -norecurse $origin_dir/../../local_memory/local_memory_interface.sv -force -import_files -norecurse $origin_dir/../../core/types_and_interfaces/external_interfaces.sv -force -import_files -norecurse $origin_dir/../../core/types_and_interfaces/cva5_config.sv -force -import_files -norecurse $origin_dir/../../core/types_and_interfaces/riscv_types.sv -force -import_files -norecurse $origin_dir/../../core/types_and_interfaces/cva5_types.sv -force -import_files -norecurse $origin_dir/../../core/types_and_interfaces/csr_types.sv -force -import_files -norecurse $origin_dir/../../core/types_and_interfaces/fpu_types.sv -force -import_files -norecurse $origin_dir/../../l2_arbiter/l2_config_and_types.sv -force - -# Set IP repository paths -set obj [get_filesets sources_1] -set_property "ip_repo_paths" "[file normalize "$origin_dir/cva5_wrapper_IP"]" $obj - -# Rebuild user ip_repo's index before adding any source files -update_ip_catalog -rebuild - -# Add/Import constrs file and set constrs file properties -#set file "[file normalize "$origin_dir/examples/zedboard/zedboard_master_XDC_RevC_D_v3.xdc"]" -#set file_imported [import_files -fileset constrs_1 [list $file]] - -# Set 'sources_1' fileset file properties for remote files -# None - -# Set 'sources_1' fileset file properties for local files - -# Set 'sources_1' fileset properties -set obj [get_filesets sources_1] -set_property -name "top" -value "cva5_wrapper_xilinx" -objects $obj -set_property -name "top_auto_set" -value "0" -objects $obj -set_property -name "top_file" -value " ${origin_dir}/core/cva5_wrapper_xilinx.sv" -objects $obj - - -# Remove interface files for cva5 -puts "INFO: Project created:${_xil_proj_name_}" - -#Removal of SystemVerilog interface files, so initial IP packaging can be done -#CUrrently Vivado 2018.1 complains if there is any SV interfaces during the intial packaging -#But if we were to re-add the SV interface files back into the IP and repackage it, SV will not complain -#export_ip_user_files -of_objects [get_files $origin_dir/${_xil_proj_name_}/${_xil_proj_name_}.srcs/sources_1/imports/core/interfaces.sv] -no_script -reset -force -quiet -#remove_files $origin_dir/${_xil_proj_name_}/${_xil_proj_name_}.srcs/sources_1/imports/core/interfaces.sv -#export_ip_user_files -of_objects [get_files $origin_dir/${_xil_proj_name_}/${_xil_proj_name_}.srcs/sources_1/imports/l2_arbiter/l2_interfaces.sv] -no_script -reset -force -quiet -#remove_files $origin_dir/${_xil_proj_name_}/${_xil_proj_name_}.srcs/sources_1/imports/l2_arbiter/l2_interfaces.sv - -############## Initial IP Packaging######################################## -ipx::package_project -import_files -force -root_dir $proj_dir -update_compile_order -fileset sources_1 -set_property core_revision 2 [ipx::current_core] -ipx::create_xgui_files [ipx::current_core] -ipx::update_checksums [ipx::current_core] -ipx::save_core [ipx::current_core] - - - -# To set the axi interface as aximm and port map all the signals over # -set_property abstraction_type_vlnv xilinx.com:interface:aximm_rtl:1.0 [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property bus_type_vlnv xilinx.com:interface:aximm:1.0 [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -ipx::remove_port_map arid [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -ipx::add_port_map WLAST [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_wlast [ipx::get_port_maps WLAST -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map BREADY [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_bready [ipx::get_port_maps BREADY -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWLEN [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awlen [ipx::get_port_maps AWLEN -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWREADY [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awready [ipx::get_port_maps AWREADY -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARBURST [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_arburst [ipx::get_port_maps ARBURST -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map RRESP [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_rresp [ipx::get_port_maps RRESP -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map RVALID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_rvalid [ipx::get_port_maps RVALID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awid [ipx::get_port_maps AWID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map RLAST [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_rlast [ipx::get_port_maps RLAST -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_arid [ipx::get_port_maps ARID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWCACHE [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awcache [ipx::get_port_maps AWCACHE -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map WREADY [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_wready [ipx::get_port_maps WREADY -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map WSTRB [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_wstrb [ipx::get_port_maps WSTRB -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map BRESP [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_bresp [ipx::get_port_maps BRESP -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map BID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_bid [ipx::get_port_maps BID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARLEN [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_arlen [ipx::get_port_maps ARLEN -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map RDATA [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_rdata [ipx::get_port_maps RDATA -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map BVALID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_bvalid [ipx::get_port_maps BVALID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARCACHE [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_arcache [ipx::get_port_maps ARCACHE -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map RREADY [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_rready [ipx::get_port_maps RREADY -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWVALID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awvalid [ipx::get_port_maps AWVALID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARSIZE [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_arsize [ipx::get_port_maps ARSIZE -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map WDATA [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_wdata [ipx::get_port_maps WDATA -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWSIZE [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awsize [ipx::get_port_maps AWSIZE -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map RID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_rid [ipx::get_port_maps RID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARADDR [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_araddr [ipx::get_port_maps ARADDR -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWADDR [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awaddr [ipx::get_port_maps AWADDR -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARREADY [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_arready [ipx::get_port_maps ARREADY -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map WVALID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_wvalid [ipx::get_port_maps WVALID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map ARVALID [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_arvalid [ipx::get_port_maps ARVALID -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] -ipx::add_port_map AWBURST [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]] -set_property physical_name m_axi_awburst [ipx::get_port_maps AWBURST -of_objects [ipx::get_bus_interfaces m_axi -of_objects [ipx::current_core]]] - -#####Re-Adding of SV interfaces files -#set_property ip_repo_paths $origin_dir/${_xil_proj_name_} [current_project] -#current_project $_xil_proj_name_ -#update_ip_catalog -#import_files -norecurse $origin_dir/l2_arbiter/l2_interfaces.sv -force -#import_files -norecurse $origin_dir/core/interfaces.sv -force - -#####Re-Adding of project files -set_property ip_repo_paths $origin_dir/../../${_xil_proj_name_} [current_project] -current_project $_xil_proj_name_ -update_ip_catalog -import_files -fileset [get_filesets sources_1] $origin_dir/../../core -import_files -fileset [get_filesets sources_1] $origin_dir/../../l2_arbiter -import_files -fileset [get_filesets sources_1] $origin_dir/../../local_memory - -############## Re-packaging of core -update_compile_order -fileset sources_1 -ipx::merge_project_changes files [ipx::current_core] -set_property core_revision 3 [ipx::current_core] -ipx::create_xgui_files [ipx::current_core] -ipx::update_checksums [ipx::current_core] -ipx::save_core [ipx::current_core] -current_project cva5_wrapper_IP -set_property "ip_repo_paths" "[file normalize "$origin_dir/cva5_wrapper_IP"]" $obj -update_ip_catalog -rebuild - diff --git a/scripts/xilinx/local_memory_IP.tcl b/scripts/xilinx/local_memory_IP.tcl deleted file mode 100644 index 3ac49b8..0000000 --- a/scripts/xilinx/local_memory_IP.tcl +++ /dev/null @@ -1,167 +0,0 @@ -#***************************************************************************************** -# Vivado (TM) v2018.3 (64-bit) -# -# tmp_edit_project.tcl: Tcl script for re-creating project 'tmp_edit_project' -# -# Generated by Vivado on Thu Dec 20 14:43:20 PST 2018 -# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 -# -# This file contains the Vivado Tcl commands for re-creating the project to the state* -# when this script was generated. In order to re-create the project, please source this -# file in the Vivado Tcl Shell. -# -# * Note that the runs in the created project will be configured the same way as the -# original project, however they will not be launched automatically. To regenerate the -# run results please launch the synthesis/implementation runs as needed. -# -#***************************************************************************************** - -# Set the reference directory for source file relative paths (by default the value is script directory path) -set origin_dir [ file dirname [ file normalize [ info script ] ] ] -#set origin_dir [file dirname [info script]] - -# Use origin directory path location variable, if specified in the tcl shell -if { [info exists ::origin_dir_loc] } { - set origin_dir $::origin_dir_loc -} - -# Set the project name -set _xil_proj_name_ "local_memory_IP" - -# Use project name variable, if specified in the tcl shell -if { [info exists ::user_project_name] } { - set _xil_proj_name_ $::user_project_name -} - -variable script_file -set script_file "local_memory_IP.tcl" - -# Help information for this script -proc print_help {} { - variable script_file - puts "\nDescription:" - puts "Recreate a Vivado project from this script. The created project will be" - puts "functionally equivalent to the original project for which this script was" - puts "generated. The script contains commands for creating a project, filesets," - puts "runs, adding/importing sources and setting properties on various objects.\n" - puts "Syntax:" - puts "$script_file" - puts "$script_file -tclargs \[--origin_dir \]" - puts "$script_file -tclargs \[--project_name \]" - puts "$script_file -tclargs \[--help\]\n" - puts "Usage:" - puts "Name Description" - puts "-------------------------------------------------------------------------" - puts "\[--origin_dir \] Determine source file paths wrt this path. Default" - puts " origin_dir path value is \".\", otherwise, the value" - puts " that was set with the \"-paths_relative_to\" switch" - puts " when this script was generated.\n" - puts "\[--project_name \] Create project with the specified name. Default" - puts " name is the name of the project from where this" - puts " script was generated.\n" - puts "\[--help\] Print help information for this script" - puts "-------------------------------------------------------------------------\n" - exit 0 -} - -if { $::argc > 0 } { - for {set i 0} {$i < $::argc} {incr i} { - set option [string trim [lindex $::argv $i]] - switch -regexp -- $option { - "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] } - "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] } - "--help" { print_help } - default { - if { [regexp {^-} $option] } { - puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n" - return 1 - } - } - } - } -} - -# Set the directory path for the original project from where this script was exported -#This is where the IP project gets stored ? -set orig_proj_dir "[file normalize "$origin_dir/"]" - -# Create project -create_project ${_xil_proj_name_} $origin_dir/${_xil_proj_name_} -part xc7z020clg484-1 - -# Set the directory path for the new project -set proj_dir [get_property directory [current_project]] - -# Reconstruct message rules -# None - -# Set project properties -set obj [current_project] -set_property -name "board_part" -value "digilentinc.com:zedboard:part0:1.0" -objects $obj -set_property -name "default_lib" -value "xil_defaultlib" -objects $obj -set_property -name "ip_cache_permissions" -value "read write" -objects $obj -set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj -set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj -set_property -name "simulator_language" -value "Mixed" -objects $obj -set_property -name "target_language" -value "Verilog" -objects $obj - -# Create 'sources_1' fileset (if not found) -if {[string equal [get_filesets -quiet sources_1] ""]} { - create_fileset -srcset sources_1 -} - -#import all sources from cva5 repo directory -import_files -fileset [get_filesets sources_1] $origin_dir/../../local_memory -import_files -norecurse $origin_dir/../../core/byte_en_BRAM.sv -force -import_files -norecurse $origin_dir/../../core/xilinx/xilinx_byte_enable_ram.sv -force -import_files -norecurse $origin_dir/../../core/cva5_config.sv -force -import_files -norecurse $origin_dir/../../core/cva5_types.sv -force -import_files -norecurse $origin_dir/../../core/riscv_types.sv -force -import_files -norecurse $origin_dir/../../core/csr_types.sv -force - -# Set IP repository paths -#set obj [get_filesets sources_1] -#set_property "ip_repo_paths" "[file normalize "$origin_dir/Clean_CVA5_IP"]" $obj - -# Rebuild user ip_repo's index before adding any source files -update_ip_catalog -rebuild - -# Add/Import constrs file and set constrs file properties - -# Set 'sources_1' fileset file properties for remote files -# None - -# Set 'sources_1' fileset file properties for local files - -# Set 'sources_1' fileset properties -set obj [get_filesets sources_1] -set_property -name "top" -value "local_mem" -objects $obj -set_property -name "top_auto_set" -value "0" -objects $obj -set_property -name "top_file" -value "${origin_dir}/local_memory/local_mem.sv" -objects $obj - - -# Remove interface files for cva5 -puts "INFO: Project created:${_xil_proj_name_}" - -##############IP Packaging######################################## -ipx::package_project -import_files -force -root_dir $proj_dir -update_compile_order -fileset sources_1 -set_property core_revision 2 [ipx::current_core] -ipx::create_xgui_files [ipx::current_core] -ipx::update_checksums [ipx::current_core] -ipx::save_core [ipx::current_core] - - -set_property ip_repo_paths $origin_dir/${_xil_proj_name_} [current_project] -current_project $_xil_proj_name_ -update_ip_catalog - - -update_compile_order -fileset sources_1 -ipx::merge_project_changes files [ipx::current_core] -set_property core_revision 3 [ipx::current_core] -ipx::create_xgui_files [ipx::current_core] -ipx::update_checksums [ipx::current_core] -ipx::save_core [ipx::current_core] -current_project local_memory_IP -update_ip_catalog -rebuild -repo_path $origin_dir/${_xil_proj_name_} - diff --git a/tools/compile_order b/tools/compile_order index 26173c5..19040cc 100644 --- a/tools/compile_order +++ b/tools/compile_order @@ -5,12 +5,6 @@ core/types_and_interfaces/cva5_types.sv core/types_and_interfaces/fpu_types.sv core/types_and_interfaces/opcodes.sv -l2_arbiter/l2_config_and_types.sv -l2_arbiter/l2_interfaces.sv -l2_arbiter/l2_external_interfaces.sv -local_memory/local_memory_interface.sv -local_memory/local_mem.sv - core/types_and_interfaces/internal_interfaces.sv core/types_and_interfaces/external_interfaces.sv @@ -19,7 +13,6 @@ core/common_components/ram/lutram_1w_mr.sv core/common_components/ram/sdp_ram.sv core/common_components/ram/sdp_ram_padded.sv core/common_components/ram/tdp_ram.sv -core/common_components/ram/dual_port_bram.sv core/common_components/set_clr_reg_with_rst.sv core/common_components/one_hot_to_integer.sv core/common_components/one_hot_mux.sv @@ -31,10 +24,6 @@ core/common_components/round_robin.sv core/common_components/toggle_memory.sv core/common_components/toggle_memory_set.sv -core/common_components/vendor_support/intel/intel_byte_enable_ram.sv -core/common_components/vendor_support/xilinx/xilinx_byte_enable_ram.sv -core/common_components/byte_en_bram.sv - core/execution_units/csr_unit.sv core/execution_units/gc_unit.sv